您正试图在您自制的电子邮件服务器上使用 iRedMail 和 postfix 禁用本地电子邮件传送,并且您正在用头撞墙。您使用自制服务器发送电子邮件,但收件箱位于第二台服务器上。在本文中,我将分享我所了解的如何使用 Postfix 禁用本地电子邮件传送 并强制某些域的所有电子邮件通过它们转发正确的MX地址。
我在互联网上搜索、搜索和搜索此信息,老实说,我什至不确定它是否适用于您的设置。但是基于我花在研究这个问题上的时间,即使作为一个非 Linux 服务器专家,我想我会把我的发现传递出去,并祈祷它能帮助减轻你的挫败感。
错误
如果您看到“虚拟邮箱表中的未知用户”错误,那么您来对地方了。基本上,您希望 postfix 停止尝试将电子邮件发送到您服务器上不存在的电子邮件帐户。真的是太过分了吗
修复后缀以禁用域的本地电子邮件传送
基本上,所有postfix的主要配置设置都在main.cf中,所以你可以通过输入vim /etc/postfix/main.cf打开文件。
查找 virtual_mailbox_domains 行 - 通过在其前面放置将其注释掉。这将完全禁用本地电子邮件传递。这是我的:
virtual_mailbox_domains=proxy:ldap:/etc/postfix/ldap/virtual_mailbox_domains.cf
接下来,找到relay_domains 行,并在前面加上收件箱do 位于您的邮箱地址的域名自制电子邮件服务器。我的看起来像这样:
relay_domains=payette.email, $mydestination, proxy:ldap:/etc/postfix/ldap/relay_domains.cf
最后,找到 transport_maps 行,并在前面添加 hash:/etc/postfix/transport 到那里的任何内容。我们将在下一步制作实际文件。我的看起来像这样:
transport_maps=hash:/etc/postfix/transport, proxy:ldap:/etc/postfix/ldap/transport_maps_user.cf, proxy:ldap:/etc/postfix/ldap/transport_maps_domain.cf
现在,剩下要做的就是制作传输文件,上面写着“将所有传入的电子邮件发送到该域,并通过该 MX 服务器发送!”
因此,通过键入 vim /etc/postfix/transport 创建文件。为每个要禁用本地交付的域添加一行,如下例所示,将 MX 服务器放在括号内。这是我的:
payetteforward.com smtp:
然后,通过键入postmap /etc/postfix/transport 执行postmap 对文件所做的任何操作。这很重要——我会解释原因,但我相信这超出了您的理解范围。 (我完全不知道它的作用。)
Trick:如果您不确定给定域的正确 MX 服务器是什么,您可以使用这个 groovy 命令找出它是什么 - 我想你会真正挖掘它,伙计.
dig -tmx payetteforward.com
接下来,通过键入 service postfix restart 重新启动 postfix,祈祷,然后重试。如果可行,请给我买一辆克尔维特。如果没有,请在评论部分告诉我,我们可以共同努力,使它成为解决这个问题的一个比较容易理解的指南。
Postfix 后缀
现在,感谢问题已解决:您已在运行postfix 或iRedMail 的本地电子邮件服务器上禁用本地递送,并且您使用的是正确的MX 地址。