Offlineimap desconhecido erro de protocolo SSL

1

Estou usando offlineimap para buscar mensagens de vários servidores IMAP. Isso costumava funcionar, mas hoje offlineimap não conseguiu buscar e-mails, produzindo os seguintes erros:

*** 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

Partes relevantes da minha configuração são:

[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 = [email protected]
remotepasseval = get_keychain_pass(account="[email protected]",
                                   server="imap.gmail.com")
ssl = yes
sslcacertfile = /usr/local/etc/openssl/certs/dummycert.pem

A configuração sslcacertfile foi criada em resposta a esta resposta SO . A função get_keychain_pass é de esta configuração offlineimap .

Estou usando o offlineimap 6.5.7 criado com o Homebrew no OS X 10.10.4.

    
por Divinenephron 18.08.2015 / 12:35

2 respostas

5

O problema começou quando eu instalei a versão do Python do Homebrew em vez da versão da Apple. O erro foi resolvido executando

brew uninstall python

Descobri que essa era a solução lendo sobre um erro semelhante produzido por outro programa em Python no OS X.

    
por 18.08.2015 / 12:35
1

Eu preciso das versões Apple e Homebrew do Python instaladas. Alguns pacotes que eu preciso instalar do pip, e eu não tenho acesso administrativo a este Macbook Pro. Assim, o único pip que tenho disponível para mim é o Homebrew. O que acabei fazendo foi definir o seguinte PYTHONPATH antes de lançar o script offlineimap.py:

PYTHONPATH="/Library/Python/2.7/site-packages" exec "/Users/tblancher/homebrew/Cellar/offlineimap/7.0.7/libexec/offlineimap.py" "$@"

Eu também modifiquei o próprio script offlineimap.py. Eu mudei a primeira linha, a partir disso:

#!/usr/bin/env python

Para isso:

#!/usr/bin/python

Aparentemente env percebeu que estava em Homebrew e, portanto, tentou usar o Python Homebrew. O Offlineimap agora funciona corretamente, assim como o meu pacote Python instalado no Homebrew-pip (mutt-ics, se você estiver curioso).

    
por 26.09.2016 / 18:08