我在虚拟机上的 ubuntu 上有一个 postfix 邮件服务器,现在邮件服务器的域是 abc.com ......因此它从任何“发件人地址”接收邮件,但“收件人地址”需要正确,即有效用户在邮件服务器中。
现在,在我的项目中,我正在向其邮件 ID 也包含其他域的用户发送假邮件......比如 cde.com
我的最终目标是显示邮件服务器中的邮件。
当我尝试这样做时,它直接进入邮件服务器日志,即 /var/log/mail.log 即作为错误
有什么办法可以将这些邮件存储在邮件服务器中?
我在虚拟机上的 ubuntu 上有一个 postfix 邮件服务器,现在邮件服务器的域是 abc.com ......因此它从任何“发件人地址”接收邮件,但“收件人地址”需要正确,即有效用户在邮件服务器中。
现在,在我的项目中,我正在向其邮件 ID 也包含其他域的用户发送假邮件......比如 cde.com
我的最终目标是显示邮件服务器中的邮件。
当我尝试这样做时,它直接进入邮件服务器日志,即 /var/log/mail.log 即作为错误
有什么办法可以将这些邮件存储在邮件服务器中?
您不仅想要一个 Catch-All 配置,例如接受任何发往 *@abc.com 的邮件,还需要一个 Catch-Anything 配置来接受任何发往 *@* 的邮件?
如果您将 PCRE 支持编译到 Postfix 中,这是可能的。然后,您需要在配置中使用虚拟用户(请参阅 Posfix 文档)并按如下方式对其进行调整:
确保您的 Postfix 已配置为至少接受一个用户和一个域的邮件。并且这是经过测试的。
1) 在main.conf集合中
virtual_alias_domains =
virtual_alias_maps = hash:/etc/postfix/virtual_forwardings, pcre:/etc/postfix/virtual_forwardings.pcre virtual_mailbox_domains = hash:/etc/postfix/virtual_domains, pcre:/etc/postfix/virtual_domains.pcre
这些hash:部分是从文档中知道的。而且pcre:零件是新的。这些hash:部分也可以省略。
2)创建virtual_domains.pcre具有以下内容的文件:
/^.*/ 好的
这接受任何域作为有效的收件人域。
3)创建virtual_forwardings.pcre具有以下内容的文件:
/@.*/ someuser@example.com
这会将任何域的任何本地部分转发给 Postfix 用户 someuser@example.com。确保这是一个有效的虚拟或本地用户。
在此配置中,Postfix 似乎是一个开放中继,但它不中继其他域。它接受任何域的邮件,并将邮件本地递送到一个邮箱。
有时您会注意到一个日志条目告诉您“不要在 mydestination 和虚拟配置中列出 abc.com”。可以忽略此警告,因为这种“奇怪”的设置并不常见。
财务报告:
另一种方法是将任何邮件发送到“some.local.user”(shell 用户)
必需:postfix-pcre 包
在 main.cf 中
luser_relay = some.local.user
local_recipient_maps =
virtual_alias_maps = pcre:/etc/postfix/virtual_alias.pcre
mydestination = $myhostname, pcre:/etc/postfix/mydestination.pcre
文件:/etc/postfix/virtual_alias.pcre(catchall 映射到“some.local.user”)
/\/@/ some.local.user
__
文件:/etc/postfix/mydestination.pcre(我们接受你扔给我们的任何东西)
/.*/ OK