我已经使用 Postfix 和 Dovecot 设置了可运行的 SMTP、IMAP 和 POP3 服务器。我已经使用以下格式设置了虚拟邮箱/home/vmail/%d/%u
,其中%d
是域名(例如 camilstaps.nl),%u
是“用户”(例如 info)- 因此[电子邮件保护]有/home/vmail/camilstaps.nl/info
。我现在想设置 Procmail 来使用过滤器。
我读过了本维基,但我认为它不适用于我的虚拟邮箱情况。我对 Procmail 的了解还不够,无法独自完成这一切。
有人能给我解释一下或者给我一个链接吗?我在谷歌上搜索过,但只找到了没用的论坛帖子,没有文档或教程。这让我怀疑是否有可能做到这一点。
答案1
警告: 它应该可以,但我自己还没有测试过。
建议改进:我建议让 postfix 和 dovecot 都使用 mysql(或其他数据库)来存储有效的虚拟用户。
关于 /etc/procmailrcs/ 中的 procmail 脚本的讨论
/etc/postfix/main.cf:
# list of valid/served virtual domains
virtual_mailbox_domains = example.com example.net
# verification of virtual recipient validity
virtual_mailbox_maps = hash:/etc/postfix/virtual
# transport for deliveries to virtual mailboxes
virtual_transport = virtualprocmail:dummy
virtualprocmail_destination_recipient_limit = 1
/etc/postfix/virtual (需要使用 postmap 进行编译):
[email protected] Jane Doe
[email protected] John Doe
/etc/postfix/master.cf(将 virtualuser 替换为拥有虚拟邮箱的真实操作系统帐户名):
virtualprocmail unix - n n - - pipe flags=DRXhuq user=virtualuser
argv=/usr/bin/procmail -m E_SENDER=$sender E_RECIPIENT=$recipient ER_USER=$user ER_DOMAIN=$domain ER_DETAIL=$extension NEXTHOP=$nexthop /etc/procmail.d/default.rc
/etc/procmail.d/default.rc(虚拟用户必须可读):
# You should add some sanity chces of ${ER_DOMAIN} and ${ER_USER}
# Add trailing / if you want to use maildir directory instead of mailbox file
DEFAULT=/home/vmail/${ER_DOMAIN}/${ER_USER}