Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unsafe login with 163 emails #68

Closed
xianwenchen opened this issue May 8, 2021 · 3 comments
Closed

Unsafe login with 163 emails #68

xianwenchen opened this issue May 8, 2021 · 3 comments

Comments

@xianwenchen
Copy link
Contributor

General informations

  • system/distribution (with version): Void
  • offlineimap version (offlineimap -V): offlineimap v7.3.3, imaplib2 v2.101 (bundled), Python v2.7.18, OpenSSL 1.1.1k 25 Mar 2021
  • Python version: 2.7
  • server name or domain: imap.163.com
  • CLI options: none

Configuration file offlineimaprc

[Account foo@163.com]
remoterepository = foo@163.com_remote
localrepository = foo@163.com_local

[Repository foo@163.com_local]
type = Maildir
localfolders = ~/foo/bar

[Repository foo@163.com_remote]
type = IMAP
remotehost = imap.163.com
remoteuser = foo
remotepass = bar
ssl = yes
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
maxconnections = 1
readonly = True
sync_deletes = no

Logs, error

Account sync foo@163.com:
 *** Processing account foo@163.com
 Establishing connection to imap.163.com:993 (foo@163.com_remote)
Folder &dcVr0mWHTvZZOQ- [acc: foo@163.com]:
 Syncing &dcVr0mWHTvZZOQ-: IMAP -> Maildir
 ERROR: Aborting sync, folder '&dcVr0mWHTvZZOQ-' [acc: 'foo@163.com']
  Error SELECTing mailbox '&dcVr0mWHTvZZOQ-', server reply:
('NO', ['SELECT Unsafe Login. Please contact kefu@188.com for help'])
Folder &g0l6P3ux- [acc: foo@163.com]:
 Syncing &g0l6P3ux-: IMAP -> Maildir
 ERROR: Aborting sync, folder '&g0l6P3ux-' [acc: 'foo@163.com']
  Error SELECTing mailbox '&g0l6P3ux-', server reply:
('NO', ['SELECT Unsafe Login. Please contact kefu@188.com for help'])
Folder &i6KWBZCuTvY- [acc: foo@163.com]:
 Syncing &i6KWBZCuTvY-: IMAP -> Maildir
 ERROR: Aborting sync, folder '&i6KWBZCuTvY-' [acc: 'foo@163.com']
  Error SELECTing mailbox '&i6KWBZCuTvY-', server reply:
('NO', ['SELECT Unsafe Login. Please contact kefu@188.com for help'])
Folder &V4NXPpCuTvY- [acc: foo@163.com]:
 Syncing &V4NXPpCuTvY-: IMAP -> Maildir
 ERROR: Aborting sync, folder '&V4NXPpCuTvY-' [acc: 'foo@163.com']
  Error SELECTing mailbox '&V4NXPpCuTvY-', server reply:
('NO', ['SELECT Unsafe Login. Please contact kefu@188.com for help'])
Folder &XfJSIJZk- [acc: foo@163.com]:
 Syncing &XfJSIJZk-: IMAP -> Maildir
 ERROR: Aborting sync, folder '&XfJSIJZk-' [acc: 'foo@163.com']
  Error SELECTing mailbox '&XfJSIJZk-', server reply:
('NO', ['SELECT Unsafe Login. Please contact kefu@188.com for help'])
Folder &XfJT0ZAB- [acc: foo@163.com]:
 Syncing &XfJT0ZAB-: IMAP -> Maildir
 ERROR: Aborting sync, folder '&XfJT0ZAB-' [acc: 'foo@163.com']
  Error SELECTing mailbox '&XfJT0ZAB-', server reply:
('NO', ['SELECT Unsafe Login. Please contact kefu@188.com for help'])
Folder &Xn9USpCuTvY- [acc: foo@163.com]:
 Syncing &Xn9USpCuTvY-: IMAP -> Maildir
 ERROR: Aborting sync, folder '&Xn9USpCuTvY-' [acc: 'foo@163.com']
  Error SELECTing mailbox '&Xn9USpCuTvY-', server reply:
('NO', ['SELECT Unsafe Login. Please contact kefu@188.com for help'])
Folder Archives [acc: foo@163.com]:
 Syncing Archives: IMAP -> Maildir
 ERROR: Aborting sync, folder 'Archives' [acc: 'foo@163.com']
  Error SELECTing mailbox 'Archives', server reply:
('NO', ['SELECT Unsafe Login. Please contact kefu@188.com for help'])
Folder INBOX [acc: foo@163.com]:
 Syncing INBOX: IMAP -> Maildir
 ERROR: Aborting sync, folder 'INBOX' [acc: 'foo@163.com']
  Error SELECTing mailbox 'INBOX', server reply:
('NO', ['SELECT Unsafe Login. Please contact kefu@188.com for help'])
Folder Notes [acc: foo@163.com]:
 Syncing Notes: IMAP -> Maildir
 ERROR: Aborting sync, folder 'Notes' [acc: 'foo@163.com']
  Error SELECTing mailbox 'Notes', server reply:
('NO', ['SELECT Unsafe Login. Please contact kefu@188.com for help'])

Steps to reproduce the error

  • Just run offlineimap

Solution to the error

The IMAP server at imap.163.com implemented the IMAP ID extension. To successfully authenticate, the IMAP client must send client ID.

Here is a code snippet that I obtained from https://blog.yrpang.com/posts/45207/:

from imapclient import IMAPClient

server = IMAPClient("imap.163.com", ssl=True, port=993)
server.login("<user>", "<passwd>")

server.id_({"name": "IMAPClient", "version": "2.1.0"})

messages = server.select_folder('INBOX')

I guess this may mean that we need a configuration option that is a switch. When the switch is on, offlineimap sends IMAP client ID.

I'm posting it here because I wonder if the issue is applicable to offlineimap3 as well. If it does, it will be great if we could fix it.

@thekix
Copy link
Contributor

thekix commented May 9, 2021

Hello @xianwenchen

your Python version is 2.7. Offlineimap3 needs Python 3:

system/distribution (with version): Void
offlineimap version (offlineimap -V): offlineimap v7.3.3, imaplib2 v2.101 (bundled), Python v2.7.18, OpenSSL 1.1.1k 25 Mar 2021
**Python version: 2.7**
server name or domain: imap.163.com
CLI options: none

Cheers,
kix

@thekix thekix closed this as completed May 9, 2021
@xianwenchen
Copy link
Contributor Author

General informations

  • system/distribution (with version): Void
  • offlineimap version (offlineimap -V): offlineimap v7.3.0, imaplib2 v3.06, Python v3.9.4, OpenSSL 1.1.1k 25 Mar 2021 (Actually, it's the git master version)
  • Python version: 3.9
  • server name or domain: imap.163.com
  • CLI options: none

Configuration file offlineimaprc

[Account foo@163.com]
remoterepository = foo@163.com_remote
localrepository = foo@163.com_local

[Repository foo@163.com_local]
type = Maildir
localfolders = ~/foo/bar

[Repository foo@163.com_remote]
type = IMAP
remotehost = imap.163.com
remoteuser = foo
remotepass = bar
ssl = yes
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
maxconnections = 1
readonly = True
sync_deletes = no

Logs, error

OfflineIMAP 7.3.0
  Licensed under the GNU GPL v2 or any later version (with an OpenSSL exception)
imaplib2 v3.06, Python v3.9.4, OpenSSL 1.1.1k  25 Mar 2021
Account sync foo@163.com:
 *** Processing account foo@163.com
 Establishing connection to imap.163.com:993 (foo@163.com_remote)
Folder &dcVr0mWHTvZZOQ- [acc: foo@163.com]:
 Syncing &dcVr0mWHTvZZOQ-: IMAP -> Maildir
 ERROR: Aborting sync, folder '&dcVr0mWHTvZZOQ-' [acc: 'foo@163.com']
  Error SELECTing mailbox '&dcVr0mWHTvZZOQ-', server reply:
('NO', [b'SELECT Unsafe Login. Please contact kefu@188.com for help'])
Folder &g0l6P3ux- [acc: foo@163.com]:
 Syncing &g0l6P3ux-: IMAP -> Maildir
 ERROR: Aborting sync, folder '&g0l6P3ux-' [acc: 'foo@163.com']
  Error SELECTing mailbox '&g0l6P3ux-', server reply:
('NO', [b'SELECT Unsafe Login. Please contact kefu@188.com for help'])
Folder &i6KWBZCuTvY- [acc: foo@163.com]:
 Syncing &i6KWBZCuTvY-: IMAP -> Maildir
 ERROR: Aborting sync, folder '&i6KWBZCuTvY-' [acc: 'foo@163.com']
  Error SELECTing mailbox '&i6KWBZCuTvY-', server reply:
('NO', [b'SELECT Unsafe Login. Please contact kefu@188.com for help'])
Folder &V4NXPpCuTvY- [acc: foo@163.com]:
 Syncing &V4NXPpCuTvY-: IMAP -> Maildir
 ERROR: Aborting sync, folder '&V4NXPpCuTvY-' [acc: 'foo@163.com']
  Error SELECTing mailbox '&V4NXPpCuTvY-', server reply:
('NO', [b'SELECT Unsafe Login. Please contact kefu@188.com for help'])
Folder &XfJSIJZk- [acc: foo@163.com]:
 Syncing &XfJSIJZk-: IMAP -> Maildir
 ERROR: Aborting sync, folder '&XfJSIJZk-' [acc: 'foo@163.com']
  Error SELECTing mailbox '&XfJSIJZk-', server reply:
('NO', [b'SELECT Unsafe Login. Please contact kefu@188.com for help'])
Folder &XfJT0ZAB- [acc: foo@163.com]:
 Syncing &XfJT0ZAB-: IMAP -> Maildir
 ERROR: Aborting sync, folder '&XfJT0ZAB-' [acc: 'foo@163.com']
  Error SELECTing mailbox '&XfJT0ZAB-', server reply:
('NO', [b'SELECT Unsafe Login. Please contact kefu@188.com for help'])
Folder &Xn9USpCuTvY- [acc: foo@163.com]:
 Syncing &Xn9USpCuTvY-: IMAP -> Maildir
 ERROR: Aborting sync, folder '&Xn9USpCuTvY-' [acc: 'foo@163.com']
  Error SELECTing mailbox '&Xn9USpCuTvY-', server reply:
('NO', [b'SELECT Unsafe Login. Please contact kefu@188.com for help'])
Folder Archives [acc: foo@163.com]:
 Syncing Archives: IMAP -> Maildir
 ERROR: Aborting sync, folder 'Archives' [acc: 'foo@163.com']
  Error SELECTing mailbox 'Archives', server reply:
('NO', [b'SELECT Unsafe Login. Please contact kefu@188.com for help'])
Folder INBOX [acc: foo@163.com]:
 Syncing INBOX: IMAP -> Maildir
 ERROR: Aborting sync, folder 'INBOX' [acc: 'foo@163.com']
  Error SELECTing mailbox 'INBOX', server reply:
('NO', [b'SELECT Unsafe Login. Please contact kefu@188.com for help'])
Folder Notes [acc: foo@163.com]:
 Syncing Notes: IMAP -> Maildir
 ERROR: Aborting sync, folder 'Notes' [acc: 'foo@163.com']
  Error SELECTing mailbox 'Notes', server reply:
('NO', [b'SELECT Unsafe Login. Please contact kefu@188.com for help'])
Account sync foo@163.com:
 *** Finished account 'foo@163.com' in 0:05

Steps to reproduce the error

  • Just run offlineimap

Solution to the error

The IMAP server at imap.163.com implemented the IMAP ID extension. To successfully authenticate, the IMAP client must send client ID.

Here is a code snippet that I obtained from https://blog.yrpang.com/posts/45207/:

from imapclient import IMAPClient

server = IMAPClient("imap.163.com", ssl=True, port=993)
server.login("<user>", "<passwd>")

server.id_({"name": "IMAPClient", "version": "2.1.0"})

messages = server.select_folder('INBOX')

I guess this may mean that we need a configuration option that is a switch. When the switch is on, offlineimap sends IMAP client ID.

I'm posting it here because I wonder if the issue is applicable to offlineimap3 as well. If it does, it will be great if we could fix it.

@xianwenchen
Copy link
Contributor Author

As expected, the problem exists in offlineimap3 now. I have confirmed it using the master from the git repository. Could you reopen the issue?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants