Osx

Offlineimap 未知 SSL 協議錯誤

  • September 26, 2016

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,如果你好奇的話)也是如此。

引用自:https://unix.stackexchange.com/questions/223924