配置邮件服务器以从任何域接收邮件

时间:2011-01-23 04:00:45

标签: postfix-mta mail-server

我的虚拟机上的ubuntu上有一个postfix邮件服务器,现在邮件服务器的域名是abc.com ...因此它接收来自任何“来自地址”的邮件,但是“地址”需要是正确的,即邮件服务器中的有效用户。

现在,在我的项目中,我发送假邮件给用户,其邮件ID也包含其他域名...例如cde.com

我的最终目标是在邮件服务器中显示邮件。

当我尝试这样做时,它直接进入mailserveer日志,即/var/log/mail.log,即错误

有什么方法可以将这些邮件存储在邮件服务器中吗?

2 个答案:

答案 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