Estoy tratando de configurar OfflineIMAP para sincronizar mi cuenta de Gmail ~/Mail/Gmail
. Estoy usando un bastante básico ~/.offlineimaprc
de aquí . Pero OfflineIMAP no se conecta a Gmail en absoluto. Este es el mensaje de depuración que recibo (ejecutando OfflineIMAP como 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
Al principio pensé que esto podría deberse al bloqueo de mi ISP imap.gmail.com/imap.googlemail.com
, pero puedo conectarme a él usando 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 '^]'.
¿Algunas ideas?
EDITAR 1: a partir de esta respuesta en SuperUser , intenté conectarme a imap.googlemail.com
través de SSL usando openssl s_client -connect imap.googlemail.com:993
. Esto me da:
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
---
Esto parece un problema de certificado faltante en OpenSSL. ¿Podría estar pasando lo mismo con OfflineIMAP también?
EDIT 2: probé los mismos comandos de OpenSSL en otro servidor (en la misma red) que ejecuta Mandriva Linux versión 2009.1 y aparentemente la conexión funcionó ( salida de depuración ). Estoy ejecutando Ubuntu 12.04 con OpenSSL / LibSSL 1.0.1-4ubuntu5.5. ¿Podría esto estar relacionado con la distribución?
fuente
Respuestas:
En lugar de especificar manualmente la huella digital (que puede cambiar), puede decirle a offlineimap dónde se almacenan los certificados de su sistema local y luego hacer que verifique automáticamente la cadena.
El sslcacertfile es lo que hace el truco.
Si los usuarios que no son Ubuntu están viendo esto, tenga en cuenta que la ubicación es muy diferente en su distribución.
fuente
sslcacertfile
camino en OSX?sslcacertfile = /usr/local/etc/openssl/cert.pem
a rudolfochrist.github.io/blog/2015/03/21/… .Debe agregar la siguiente línea a la sección en .offlineimaprc que describe su cuenta remota de Gmail:
Este es el certificado SSL del servidor imap de Gmail.
fuente
No, a OpenSSL no le falta un certificado, es un error de protocolo de enlace SSL porque el otro extremo no envió su certificado.
Obtendrá un error similar cuando se conecte a algún servicio no SSL habilitado.
¿Qué obtienes cuando agregas la opción -debug a openssl?
responder:
Por lo tanto, no lee nada del socket (lo que sugiere que estaba cerrado por el otro extremo o algo intermedio antes de enviar cualquier cosa)
¿Hay algún tipo de proxy en su red? ¿Algún tipo de redirección de iptables o antivirus en la máquina local?
¿Qué
tshark -Vi any port 993
te da cuando pruebas el comando openssl?fuente
-debug
opción. Aparentemente puedo conectarme desde otro servidor en la misma red. Ahora estoy pensando que esto podría ser específico de la distribución. También actualicé mi pregunta.