Osx
Offlineimap 未知 SSL 協議錯誤
我
offlineimap
用來從多個 IMAP 伺服器獲取郵件。這曾經有效,但今天offlineimap
無法獲取郵件,產生以下錯誤:*** Processing account example Establishing connection to imap.gmail.com:993 ERROR: Unknown SSL protocol connecting to host 'imap.gmail.com' for repository '<redacted>'. OpenSSL responded: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590) *** Finished account 'example' in 0:00
我的配置的相關部分是:
[Account example] localrepository = local-example remoterepository = remote-example [Repository local-example] type = Maildir localfolders = ~/mail/example [Repository remote-example] maxconnections = 1 type = Gmail remotehost = imap.gmail.com remoteuser = example@gmail.com remotepasseval = get_keychain_pass(account="example@sexpression.org.uk", server="imap.gmail.com") ssl = yes sslcacertfile = /usr/local/etc/openssl/certs/dummycert.pem
該
sslcacertfile
配置是響應這個 SO answer創建的。該get_keychain_pass
功能來自此offlineimap 配置。我
offlineimap
在 OS X 10.10.4 上使用 Homebrew 建構的 6.5.7。
當我安裝 Homebrew 的 python 版本而不是 Apple 版本時,問題就開始了。錯誤已通過執行解決
brew uninstall python
通過閱讀OS X 上另一個 Python 程序產生的類似錯誤,我發現這是解決方案。
我需要安裝 Apple 和 Homebrew 版本的 Python。我需要從 pip 安裝一些軟體包,並且我沒有對這個工作發布的 Macbook Pro 的管理訪問權限。因此,我可以使用的唯一點是 Homebrew。我最終做的是在啟動 offlineimap.py 腳本之前設置以下 PYTHONPATH:
PYTHONPATH="/Library/Python/2.7/site-packages" exec "/Users/tblancher/homebrew/Cellar/offlineimap/7.0.7/libexec/offlineimap.py" "$@"
我還修改了offlineimap.py 腳本本身。我改變了第一行,從這個:
#!/usr/bin/env python
對此:
#!/usr/bin/python
顯然 env 發現它在 Homebrew 中,因此試圖使用 Homebrew python。Offlineimap 現在可以正常工作了,我的 Homebrew-pip-installed Python 包(mutt-ics,如果你好奇的話)也是如此。