Gmail'i senkronize etmek için OfflineIMAP kullanılamıyor


10

Gmail hesabımı senkronize etmek için OfflineIMAP kurmaya çalışıyorum ~/Mail/Gmail. Ben oldukça basit kullanıyorum ~/.offlineimaprcdan burada . Ancak OfflineIMAP Gmail'e hiç bağlanmaz. Bu aldığım hata ayıklama iletisi (OfflineIMAP'ı şu şekilde çalıştırarak 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

Başlangıçta bunun ISS engellememden kaynaklanabileceğini düşündüm imap.gmail.com/imap.googlemail.com, ancak şunu kullanarak bağlanabiliyorum 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 '^]'.

Herhangi bir fikir?

DÜZENLEME 1: SuperUser'daki bu yanıttan imap.googlemail.comSSL kullanarak bağlanmayı denedim openssl s_client -connect imap.googlemail.com:993. Bu bana:

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

Bu, OpenSSL'de eksik bir sertifika sorunu gibi görünüyor. Aynı şey OfflineIMAP için de olabilir mi?

DÜZENLEME 2: Mandriva Linux 2009.1 sürümünü çalıştıran başka bir sunucuda (aynı ağda) aynı OpenSSL komutlarını denedim ve görünüşe göre bağlantı çalıştı ( hata ayıklama çıktı ). Ubuntu 12.04'ü OpenSSL / LibSSL 1.0.1-4ubuntu5.5 ile çalıştırıyorum. Bu dağıtımla ilgili olabilir mi?


Çevrimdışı harita sürümünüzü yayınlamanıza yardımcı olabilir, çünkü bu proje vahşi ortamda oldukça az sayıda sürüme sahiptir ve bazıları kötü bir şekilde kırılmıştır. Ayrıca, bilgilerini ana sayfalarında bulabilecekleri posta listesini de deneyin .
jw013

Yanıtlar:


12

Parmak izini manuel olarak belirtmek yerine (değişebilen), çevrimdışı haritaya yerel sistem sertifikalarınızın nerede saklandığını söyleyebilir ve ardından zinciri otomatik olarak doğrulamasını sağlayabilirsiniz.

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

Sslcacertfile hile yapar.

Ubuntu kullanıcısı olmayanlar bunu görüyorsa, konumun dağıtımınızda büyük olasılıkla farklı olduğunu unutmayın.


4
herhangi bir fikir nerede sslcacertfileOSX yolu?
Meitham

1
Gibi @Meitham görünüyor sslcacertfile = /usr/local/etc/openssl/cert.pemgöre rudolfochrist.github.io/blog/2015/03/21/... .
tekknolagi

1

.Offlineimaprc içindeki uzak Gmail hesabınızı açıklayan bölüme aşağıdaki satırı eklemelisiniz:

cert_fingerprint=f3043dd689a2e7dddfbef82703a6c65ea9b634c1

Bu, Gmail'in imap sunucusunun SSL sertifikasıdır.


0

Hayır, OpenSSL sertifikası eksik değil, SSL el sıkışma hatası, çünkü diğer uç sertifikasını göndermedi.

SSL özelliği olmayan bazı hizmetlere bağlandığınızda benzer bir hata alırsınız.

-Debug seçeneğini openssl dosyasına eklediğinizde ne elde edersiniz?

Cevap:

read from 0x9cd8b98 [0x9cde140] (7 bytes => 0 (0x0))

Bu yüzden soketten hiçbir şey okumaz (bir şey göndermeden önce diğer uç veya aradaki bir şey tarafından kapatıldığını gösterir)

Ağınızda bir tür proxy var mı? Yerel makinede bir tür iptables yönlendirmesi veya virüsten koruma?

Ne yok tshark -Vi any port 993sen openssl komutu çalıştığınızda size?


Teşekkürler! İşte OpenSSL'yi bu -debugseçenekle çalıştırmanın sonucu . Görünüşe göre aynı ağdaki başka bir sunucudan bağlanabiliyorum. Şimdi bunun distro özgül olabileceğini düşünüyorum. Sorumu da güncelledim.
tirmm
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.