我在虚拟机上的 ubuntu 上有一个 postfix 邮件服务器,现在邮件服务器的域是 abc.com...因此它从任何“发件人地址”接收邮件,但“收件人地址”需要正确,即有效的邮件服务器中的用户。
现在,在我的项目中,我向邮件 ID 也包含其他域的用户发送假邮件...例如 cde.com
我的最终目标是显示邮件服务器中的邮件。
当我尝试这样做时,它直接进入邮件服务器日志,即 /var/log/mail.log 即作为错误
有什么办法可以将这些邮件存储在邮件服务器中吗??
您不仅需要一个 Catch-All 配置(例如接受任何发往 *@abc.com 的邮件),还需要一个 Catch-Anything 配置来接受任何发往 *@* 的邮件?
如果您将 PCRE 支持编译到 Postfix 中,这是可能的。然后,您的配置中需要虚拟用户(请参阅 Posfix 文档)并按如下方式进行调整:
确保您的 Postfix 已配置为接受至少一名用户和一个域的邮件。并且这是经过测试的。
在
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:
部分也可以省略。
创建包含以下内容的文件
virtual_domains.pcre
:
/^.*/ OK
这接受任何域作为有效的收件人域。
创建包含以下内容的文件
virtual_forwardings.pcre
:
/@.*/ [email protected]
这会将任何域的任何本地部分转发给 Postfix 用户 [电子邮件受保护]。确保这是有效的虚拟或本地用户。
在此配置中,Postfix 似乎是一个开放中继,但它不中继其他域。它接受任何域的邮件并将邮件发送到本地的一个邮箱。
有时您会注意到一条日志条目告诉您“不要在我的目的地和虚拟配置中列出 abc.com”之类的内容。此警告可以忽略,因为这种“奇怪”的设置并不常见。
FTR:
另一种方法是将任何邮件发送到“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 (映射到“some.local.user”的包罗万象)
/\/@/ some.local.user
__
文件:/etc/postfix/mydestination.pcre(我们接受您向我们扔的任何内容)
/.*/ OK