我正在尝试找到一种方法,根据发件人地址将收到的邮件发送到特定文件夹。我的设置是在 Ubuntu Server 14.04 上,Postfix mail_version = 2.11.0 Courier Imap 带有 spamassasin、amavis、clamav。设置基于此这个在线指南。随着服务器日渐成熟,我开始需要根据发件人地址分离收到的邮件(就像 gmail 对社交标签所做的那样)。我必须使用 maildirmake 在现有帐户中创建一个新文件夹
maildirmake -f Social /var/mail/virtual/domain/account
为了使新文件夹正常工作,我从现有文件夹复制粘贴了权限和所有权,如下所示
sudo chown -R --reference=.Sent/ .Social
sudo chmod -R --reference=.Sent/ .Social
此后,新文件夹就会显示在 Thunderbird 中,我可以将电子邮件移动到其中。
现在对我来说最棘手的部分是,尽管我搜索了好多地方,但我还是找不到可行的解决方案,那就是我想在 Postfix 上应用过滤器?或者其他任何方法,这样如果收到的电子邮件来自 Twitter,就会显示在社交文件夹中。提前感谢任何能给我的指导。问候。
答案1
是的,这是可能的。Nick_W 和 Karma 已经为您提供了使用 maildrop 的想法。如果您在 MySQL 中存储了虚拟用户(基于您的教程),它应该可以正常工作。它将使用 Courier authlib 来确定邮箱的位置。
安装 maildrop 后,确保 postfix 文件中的 maildrop 服务master.cf
已激活
maildrop unix - n n - - pipe
flags=DRhu user=vmail argv=/path/to/maildrop -d ${recipient}
并编辑main.cf
以配置 Postfix 以使用邮件投递传输而不是后缀默认虚拟的运输。
maildrop_destination_recipient_limit = 1
virtual_transport = maildrop
最后一步是告诉 maildrop 根据发件人过滤电子邮件。应放置该规则/etc/maildroprc
以强制执行全局过滤。
if (/^From: *@twitter\.com/)
{
... do what you want...
}
參閱邮件投递和邮件投递过滤器有关 maildrop 过滤语法的文档。
附加教程: