如何停止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"

Answers:


7

我找不到在服务器上保留或恢复“未读”标志的方法。

最后,我转而使用getmailfetchmail它是用Python编写的一种更现代的替代方法。不同于fetchmail,它getmail根据服务器的消息ID而不是消息“未读”标志来检索消息。

这是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。


4
不可以,该keep标志是为了防止fetchmail在下载消息后从服务器删除该消息。确实,我正在使用keep标志,因为我想将消息保留在服务器上。我也想找到一种方法来保留“新消息”标志。
史蒂夫HHH

而且fetchmail(或其他任何人)如何知道它已经收到消息了?
vonbrand

通过跟踪服务器上的消息ID,可以像电子邮件客户端一样进行操作。例如,我希望fetchmail知道它最后一次下载的消息ID 394,因此,如果下次它找到消息400,则它应该下载消息395-400,而不考虑其“未读”标志状态。对于像fetchmail这样的声誉的工具而言,仅基于“未读”标志的状态下载新消息会令人失望地简化。
史蒂夫HHH

跟踪已读/未读消息正是该消息上已读/未读标志用于...
vonbrand

确实。而且,如果可能的话,我想使用该标志,以便跟踪已读的消息。问题是我无法再这样做,因为fetchmail将我所有的消息都标记为已读。因此,我希望能够做的是让fetchmail“读取”我的邮件,而不将邮件标记为已读。例如,我的电话和桌面电子邮件客户端。它们都“读取”了我的消息,并且确实可以应用邮件规则,但是在我查看它们之前,它们都未将消息标记为已读。
史蒂夫HHH
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.