我的虚拟机上的ubuntu上有一个postfix邮件服务器,现在邮件服务器的域名是abc.com ...因此它接收来自任何“来自地址”的邮件,但是“地址”需要是正确的,即邮件服务器中的有效用户。
现在,在我的项目中,我发送假邮件给用户,其邮件ID也包含其他域名...例如cde.com
我的最终目标是在邮件服务器中显示邮件。
当我尝试这样做时,它直接进入mailserveer日志,即/var/log/mail.log,即错误
有什么方法可以将这些邮件存储在邮件服务器中吗?
答案 0 :(得分:5)
您不仅需要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是一个Open Relay,但它不会转发其他域。它接受任何域的邮件,并在本地将邮件传递到一个邮箱。
有时您会注意到一个日志条目,告诉您“不要在mydestination和虚拟配置中列出abc.com”。这个警告可以忽略,因为这种“奇怪”的设置并不常见。
答案 1 :(得分:2)
的 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 (catchall映射到“some.local.user”)
/\/@/ some.local.user
__
文件:/etc/postfix/mydestination.pcre(我们接受你向我们扔的任何东西)
/.*/ OK