关于邮件列表的常见道理是回答人类,并通过CC邮件列表,如下:
To: help-volounter@dev.full
Cc: some-program@mailing-list.com
Subject: Re: Describtion of the problem
问题是我收到了这样的电子邮件的两份副本(这是预期的)。我想procmail
一个副本到邮件列表mbox,另一个到收件箱mbox。这是简单的方法吗?
答案 0 :(得分:0)
这并非完全无足轻重,但您可能会发现一些有用的构建块。
您可以通过保留已显示的message-id:s的缓存来检测您是否已收到邮件。这是procmailex
man page中更详细描述的标准技术。我建议使用相同的技术来决定传入消息的位置;如果以前没有看过,请发送到您的收件箱;否则,将文件存入列表的文件夹。
锁定变得有点复杂,因为您需要在输入formail -D
配方之前获取锁定文件。这可以通过使用LOCKFILE
特殊变量来完成。
# Is this message addressed both to yourself and to the list?
:0
* ^TO_you@example\.net\>
* ^TO_mailing-list@elsewhere\.example\.org\>
{
# Select regular inbox as default target for this message
dest=$DEFAULT
# Lock msgid.lock for exclusive access to msgid.cache
LOCKFILE=msgid.lock
# If message-id is already cached, override $dest
:0
* H ? formail -D 8192 msgid.cache
{ dest=listbox/ }
# Release lock
LOCKFILE=
# Deliver to $dest
:0
$dest
}
这不是100%万无一失。例如,如果您获得Bcc:
,则您自己的地址不会出现在标题中,因此^TO_
您自己将无法匹配。