Синхронизировать и читать Gmail в автономном режиме, используя isync ИЛИ offlineimap

Моя цель - синхронизировать мои письма из учетной записи Gmail и индексировать их для поиска и чтения в Emacs. Последнее пока не актуально, так как я не могу синхронизировать письма с моим ноутбуком.

Я использую Mavericks и работаю в Mac Terminal.

Я следовал SO принятому ответу и ответу в той же теме, пытаясь использовать offlineimap, а также второй метод в этом (более многообещающем) учебнике по использованию isync (и т. Д. Mbsync). Оба способа заканчиваются использованием mu и интерфейса для Emacs: mu4e.

Сертификаты не читаются / интерпретируются правильно. Я не знаю почему, так как я не понимаю сообщения об ошибках. Вот один из оффлайн-карт:

> OfflineIMAP 6.5.7
  Licensed under the GNU GPL v2 or any later version (with an OpenSSL exception)
Account sync Gmail:
 *** Processing account Gmail
 Establishing connection to imap.gmail.com:993
 PLAIN authentication failed: [ALERT] Please log in via your web browser: https://support.google.com/mail/accounts/answer/78754 (Failure)
 LOGIN authentication failed: [ALERT] Please log in via your web browser: https://support.google.com/mail/accounts/answer/78754 (Failure)
 ERROR: All authentication types failed:
    PLAIN: [ALERT] Please log in via your web browser: https://support.google.com/mail/accounts/answer/78754 (Failure)
    LOGIN: [ALERT] Please log in via your web browser: https://support.google.com/mail/accounts/answer/78754 (Failure)
 *** Finished account 'Gmail' in 0:01
ERROR: Exceptions occurred during the run!
ERROR: All authentication types failed:
    PLAIN: [ALERT] Please log in via your web browser: https://support.google.com/mail/accounts/answer/78754 (Failure)
    LOGIN: [ALERT] Please log in via your web browser: https://support.google.com/mail/accounts/answer/78754 (Failure)
> 
> Traceback:   File
> "/usr/local/Cellar/offline-imap/6.5.7/libexec/offlineimap/accounts.py",
> line 263, in syncrunner
>     self.__sync()   File "/usr/local/Cellar/offline-imap/6.5.7/libexec/offlineimap/accounts.py",
> line 326, in __sync
>     remoterepos.getfolders()   File "/usr/local/Cellar/offline-imap/6.5.7/libexec/offlineimap/repository/IMAP.py",
> line 351, in getfolders
>     imapobj = self.imapserver.acquireconnection()   File "/usr/local/Cellar/offline-imap/6.5.7/libexec/offlineimap/imapserver.py",
> line 451, in acquireconnection
>     self.__authn_helper(imapobj)   File "/usr/local/Cellar/offline-imap/6.5.7/libexec/offlineimap/imapserver.py",
> line 366, in __authn_helper
>     "failed:\n\t%s"% msg, OfflineImapError.ERROR.REPO)

Вот один из mbsync:

> C: 0/3  B: 0/2  M: +0/0 *0/0 #0/0  S: +0/0 *0/0 #0/0
Error while loading certificate file '/usr/local/etc/openssl/certs/Equifax.crt': error:00000000:lib(0):func(0):reason(0)
C: 3/3  B: 0/2  M: +0/0 *0/0 #0/0  S: +0/0 *0/0 #0/0

Я установил все с Homebrew и использую папки согласно учебным пособиям. Проблема исходит от сертификатов, но я не знаю, в чем проблема. У меня есть настройки в Gmail, чтобы разрешить IMAP, а также разрешил подключение для менее безопасных приложений.

Как я могу иметь дело с сертификатами по-другому?

1 ответ

Решение

За ошибку offlineimap Google жалуется, что вы не используете Oauth2. Я преодолел ту же проблему офлайн-карты, следуя объяснениям здесь: https://github.com/OfflineIMAP/offlineimap/issues/228

Вам нужно настроить .offlineimaprc использовать Oauth2 вместо указания имени пользователя / пароля. Вот шаблон и инструкции по созданию токенов: https://github.com/OfflineIMAP/offlineimap/blob/master/offlineimap.conf#L764

Вот важные настройки:

auth_mechanisms = GSSAPI, CRAM-MD5, XOAUTH2, PLAIN, LOGIN
oauth2_client_secret = ...
oauth2_client_id = ...
oauth2_refresh_token = ...
Другие вопросы по тегам