Использование fetchmail для однократного извлечения электронной почты из gmail - PullRequest
4 голосов
/ 03 февраля 2020
  • Я пытаюсь использовать fetchmail в терминале для извлечения электронной почты из моей учетной записи gmail.
  • Я настроил ~/.fetchmailrc с:
poll imap.gmail.com protocol POP3
   user "someuser@gmail.com" is oren here
   password 'verysecretpassword'

(Конечно, с реальным именем пользователя + паролем).

  • Затем я попытался наивно извлечь письма с помощью: $ fetchmail.
  • К сожалению, ничего не произошло, и все, что я получил, было :
fetchmail: 6.3.26 querying imap.gmail.com (protocol POP3) at Mon 03 Feb 2020 14:34:46 IST: poll started
Trying to connect to <ADDRESS> ... connection failed.

1 Ответ

3 голосов
/ 13 февраля 2020

Использование Fetchmail

Похоже, что конфигурация настроена для опроса сервера IMAP, но с указанием протокола POP3. Попробуйте что-то вроде этого для файла ~/.fetchmailrc:

set postmaster "local_user"
set daemon 600
poll pop.gmail.com with proto POP3
   user 'gmail_user_name' there with password 'app_password' is local_user here options ssl fetchlimit 400

, где:

  • local_user - это локальная учетная запись, на которую недоставленная почта должна go («последний канал») «перед неудачей».
  • gmail_user_name - это все, что слева от @ в адресе электронной почты.
  • app_password - это специально сгенерированный пароль, который ограничен Приложение Gmail (go здесь: https://myaccount.google.com/ и нажмите Security, затем app passwords и создайте новый пароль приложения)

Что делать на этом этапе будет зависит от вашей локальной настройки. Fetchmail будет ... получать почту (ясно) .... и затем доставлять ее в систему доставки локальной машины. Если у вас есть sendmail (довольно безопасная ставка), это может сработать:

$ fetchmail -d0 -avNk -m "/usr/sbin/sendmail -i -f %F -- %T" pop.gmail.com

Почта должна начать поступать. Сообщения можно прочитать с помощью команды mail или получить необработанный контент из /var/mail/[username]. Это не может получить все в одном кадре; это очень вероятно не будет, если адрес накопил даже небольшое количество истории. Позвольте ему завершить sh и убедитесь, что он работает как положено. Если все выглядит хорошо, то пришло время запустить fetchmail как процесс демона и позволить ему загрузить весь почтовый ящик. Сначала настройте fetchmail с соответствующим интервалом опроса и настройками размера партии 1 .

  • Убедитесь, что интервал опроса настроен в ~/.fetchmailrc с помощью строки daemon 600 ( ie. 10-минутный интервал опроса).
  • Убедитесь, что опция опроса fetchlimit 400 установлена ​​в ~/.fetchmailrc в разделе options в разделе poll pop.gmail.com. Это максимальное количество сообщений для выборки за опрос.
  • Запустите fetchmail, используя ту же команду, что и выше, , но пропустите переключатель -d0 .

Fetchmail должен начинаться как настоящий демон и продолжать периодически загружать пакеты сообщений, пока не будет загружен весь почтовый ящик. Вам нужно помнить, что нужно завершить процесс демона, если вы не хотите, чтобы он продолжал синхронизацию до следующей перезагрузки.




Использование Google Takeout

Вы можете сделать это очень просто, используя Google Takeout . Войдите в систему, нажмите «отменить выбор» в верхней части списка, затем прокрутите вниз до Mail и проверьте только это. Вы можете получить данные в файле .zip или .tgz. Они отправят вам электронное письмо, когда архив будет готов к загрузке. Он упакован в файл mbox, но его довольно просто преобразовать в другие форматы.

Это, вероятно, самый простой способ выполнить sh однократный экспорт, и я думаю, что у них есть возможность настроить повторяющийся экспорт тоже. Вероятно, он не предлагает такого большого контроля по сравнению с использованием API разработчика напрямую, но это намного меньше хлопот.




1: Я считаю, что у Google есть некоторое ограничение скорости, поэтому я добавляю некоторые шаги, чтобы приспособиться к этим ограничениям. Это консервативные значения, так как я не знаю точно, каковы пределы (или даже точно, если они существуют). Если вы знаете больше или хотите исследовать его, настройте эти значения так, как считаете нужным.

...