Как остановить Fetchmail помечать сообщения как прочитанные

9

Когда fetchmailпроверяет мой почтовый ящик IMAP, он загружает все непрочитанные сообщения и удаляет флаг «непрочитанные» сообщения на почтовом сервере.

Есть ли способ , чтобы fetchmailзагрузить новые сообщения без маркировки их как прочитанные?

Я использую procmailдля автоматической обработки новых почтовых сообщений и запуска сценариев на основе почтовых правил, поэтому я хочу, чтобы сообщения загружались, но я бы предпочел, чтобы флаг «новое сообщение» сохранялся в сообщениях, которые я еще не прочитал в своем почтовом клиенте.

Это мой .fetchmailrcфайл:

poll mail.domain.com protocol IMAP
    user "user@domain.com"
    password 'password'
    folder 'INBOX'
    keep
    ssl
    mda "/usr/bin/procmail -f %F"
Стив ХХХ
источник

Ответы:

7

Я не смог найти способ сохранить или восстановить флаг «непрочитанный» на сервере.

В конце концов, я переключился на использование getmail , более современной альтернативы fetchmailнаписанному на Python. В отличие от этого fetchmail, getmailизвлекает сообщения на основе идентификатора сообщения сервера, а не флага «непрочитанный».

Это getmailфайл конфигурации, который я создал, который обеспечил эквивалентность моей fetchmailконфигурации:

# ~/.getmail/getmailrc
# Configuration file to retrieve messages over secure IMAP
# and send them to procmail

[retriever]
type=SimpleIMAPSSLRetriever
server=mail.domain.com
username=user@domain.com
password=password

[destination]
type=MDA_external
path=/usr/bin/procmail

[options]
verbose=0
read_all=false
delete=false
delete_after=0
delete_bigger_than=0
max_bytes_per_session=0
max_message_size=0
max_messages_per_session=0
delivered_to=false
received=false
message_log=~/getmail.log
message_log_syslog=false
message_log_verbose=true
Стив ХХХ
источник
-1

Мои fetchmail(1)цитирует флаги -k, --keepи вариант , keepчтобы не загружать сообщения.

fetchmail-6.3.22-1.fc18.x86_64, Fedora 18.

vonbrand
источник
4
Нет, keepфлаг запрещает fetchmail удалять сообщение с сервера после его загрузки. На самом деле, я использую keepфлаг, так как я хочу хранить сообщения на сервере. Я просто хотел бы найти способ сохранить флаг "Новое сообщение".
Стив ХХХ
И как fetchmail (или кто-либо еще) узнает, что он уже получил сообщение?
vonbrand
Отслеживая идентификатор сообщения на сервере, так же, как и почтовый клиент. Например, я хотел бы надеяться, что fetchmail будет знать, что он последний раз скачал идентификатор сообщения 394, поэтому, если в следующий раз он найдет сообщение 400, он должен загрузить сообщения 395-400, независимо от их статуса «непрочитанного» флага. Загрузка новых сообщений, основанных только на статусе флага «непрочитанные», будет разочаровывающе упрощенной для инструмента с такой репутацией, как fetchmail.
Стив ХХХ
Для отслеживания прочитанных / непрочитанных сообщений именно для этого используется флаг чтения / непрочитанного сообщения ...
vonbrand
Верно. И я хотел бы использовать этот флаг, если это возможно, чтобы я мог отслеживать сообщения, которые я прочитал. Проблема в том, что я больше не могу этого делать, потому что fetchmail помечает все мои сообщения как прочитанные. Поэтому я хотел бы, чтобы fetchmail «читал» мою почту, не помечая сообщения как прочитанные. Взять, к примеру, мой телефон и почтовые клиенты на рабочем столе. Они оба «читают» мои сообщения и действительно могут применять почтовые правила, но ни один из них не помечает сообщения как прочитанные, пока я их не просмотрю.
Стив ХХХ