我有一个运行 postfix 和 dovecot 的服务器,在本地接受四个域的电子邮件(使用virtual_mailbox_domains
和virtual_mailbox_maps
),并将另外六个域的电子邮件转发到其他位置(使用virtual_alias_domains
和virtual_alias_maps
)。
我也有二十个左右的电子邮件地址被拒绝(使用check_recipient_access
)。
其中两个域名使用了万能电子邮件地址,其余域名仅接受所需的邮政局长、网站管理员和滥用者。
我的配置中某处出现错误,因为部分发往本地地址的邮件被发送到错误的本地电子邮件帐户,而部分应该被拒绝的邮件却被发送了。
我找不到这样的实用程序:给定一个电子邮件地址,它就会根据我的配置文件打印出电子邮件应该发送到哪里(本地还是转发)。
存在吗?
答案1
postmap -q
是用于测试地图的正确工具,但有局限性:
access(5)
它仅搜索您提供的密钥,而不是按照或中指定的优先级顺序尝试密钥virtual(5)
。- 它假设您知道要搜索哪个表。
要测试端到端重写,请使用sendmail -bv
,它会生成并通过电子邮件发送包含地址重写和路由详细信息的报告。当然,这是 sendmail 命令行界面的一部分,因此不会模拟 smtpd 明确执行的重写,例如访问映射中的 FILTER 或 REDIRECT 操作。
答案2
后图是你的朋友!
使用示例:
postmap -q [email protected] hash:/etc/postfix/virtual
postmap -q [email protected] ldap:/etc/postfix/virtual.cf