OfflineIMAPを使用してGmailを同期することはできません。

OfflineIMAPを使用してGmailを同期することはできません。

Gmailアカウントをに同期するためにOfflineIMAPを設定しようとしています~/Mail/Gmail~/.offlineimaprcここ。ただし、OfflineIMAPはGmailにまったく接続できません。これは、次の方法でOfflineIMAPを実行して私が受け取ったデバッグメッセージですofflineimap -o -d imap

OfflineIMAP 6.3.4
Copyright 2002-2011 John Goerzen & contributors.
Licensed under the GNU GPL v2+ (v2 or any later version).

Debug mode: Forcing to singlethreaded.
Now debugging for imap: IMAP protocol debugging
Now debugging for : Other offlineimap related sync messages
Account sync Gmail:
***** Processing account Gmail
Copying folder structure from IMAP to Maildir
Establishing connection to imap.gmail.com:993.
DEBUG[imap]:   06:28.69 Account sync Gmail imaplib2 version 2.24
DEBUG[imap]:   06:28.69 Account sync Gmail imaplib2 debug level 5, buffer level 3
WARNING: Error occured attempting to sync account 'Gmail':
Traceback (most recent call last):
File "/usr/lib/pymodules/python2.7/offlineimap/accounts.py", line 177, in syncrunner
    self.sync()
File "/usr/lib/pymodules/python2.7/offlineimap/accounts.py", line 235, in sync
    remoterepos.syncfoldersto(localrepos, [statusrepos])
File "/usr/lib/pymodules/python2.7/offlineimap/repository/Base.py", line 124, in syncfoldersto
    srcfolders = src.getfolders()
File "/usr/lib/pymodules/python2.7/offlineimap/repository/IMAP.py", line 276, in getfolders
    imapobj = self.imapserver.acquireconnection()
File "/usr/lib/pymodules/python2.7/offlineimap/imapserver.py", line 323, in acquireconnection
    elif isinstance(e, socket.error) and e.args[0] == errno.ECONNREFUSED:
NameError: global name 'errno' is not defined

***** Finished processing account Gmail

最初はISPのブロックによるものかもしれないと思いましたが、imap.gmail.com/imap.googlemail.com次のように接続できましたtelnet imap.googlemail.com 993

telnet imap.googlemail.com 993
Trying 173.194.79.16...
Connected to googlemail-imap.l.google.com.
Escape character is '^]'.

どんなアイデアがありますか?

編集1:この答えから始めましょうimap.googlemail.com、SSLを介した接続を使用しようとしていますopenssl s_client -connect imap.googlemail.com:993。これは私に次のことを与えます:

CONNECTED(00000003)
3078125768:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:177:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 226 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
---

OpenSSLに証明書が欠落している問題のようです。 OfflineIMAPでも同じことが起こりますか?

編集2:Mandriva Linuxバージョン2009.1を実行している別のサーバー(同じネットワーク上にある)で同じOpenSSLコマンドを試みましたが、明らかに接続が機能しました(デバッグ出力)。私はOpenSSL / LibSSL 1.0.1-4ubuntu5.5でUbuntu 12.04を実行しています。流通と関係がありますか?

ベストアンサー1

指紋(変更可能)を手動で指定する代わりに、オフラインシステム証明書に保存されている場所をオフラインimapに通知し、自動的にチェーンを確認することができます。

[Repository somerepos-remote]
type = Gmail
sslcacertfile = /etc/ssl/certs/ca-certificates.crt

これがsslcacertfileが行うことです。

Ubuntuを使用していないユーザーがこのコンテンツを表示したら、ディストリビューションによって場所が異なる可能性があることに注意してください。

おすすめ記事