Я использую getmail для архивирования входящей почты моей учетной записи Gmail. Однако время от времени процесс зависает - возможно, из-за плохого соединения с серверами Gmail IMAP. Я считаю, что единственный способ перезапустить процесс - просто убить процесс с помощью CTRL+C. Иногда, убивая и перезапуская процесс, getmail не обновляет файл oldmail который он использует при перезапуске, чтобы определить, какие электронные письма были ранее загружены. Это заставляет процесс занимать больше времени (и, возможно, снова зависать), и создает файл mbox котором хранятся данные резервной копии.

После осмотра, похоже, что getmail обновляет oldmail файл только после его завершения - и поэтому, если он неожиданно уничтожен, данные, по которым электронные письма уже были загружены, теряются. Есть ли способ заставить getmail обновить базу данных oldmail в реальном времени, а не только в конце процесса?

1 ответ1

1

Что касается getmail

Часто задаваемые вопросы по getmail гласят, что это поведение "своего рода" известно:

Используйте параметр max_messages_per_session, чтобы ограничить количество сообщений, которые getmail будет обрабатывать за один сеанс. Некоторые пользователи с ненадежными серверами используют эту опцию, чтобы уменьшить шансы увидеть сообщения более одного раза, если сервер умирает в середине сеанса.

Возможное решение

Возможный обходной путь (специфичный для GMail), который полностью избавляет от необходимости использовать файл oldmail, - это ввести своего рода "архивный бит":

  • Создайте собственную метку, например, именованный archive
  • Создайте фильтр для применения этого ярлыка к любому новому сообщению (полученному или отправленному)
    • (from:(you@gmail.com) OR to:(you@gmail.com))
  • С помощью IMAP-ретривера можно получать сообщения только из папки этого ярлыка (опция mailboxes )
  • Установите опцию delete в конфиге (в GMail это только удалит метку)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .