答案1
端口 587 已打开,并通过 telnet 使用 tcpdump 确认,但是当尝试从 Gmail 发送邮件时,我看不到任何流量。
域之间的邮件交换(通过 MX 记录)始终使用端口二十五。您无法更改这一点。您必须打开端口 25 以进行入站连接,以便 Gmail 能够到达您的 Postfix(它是 master.cf 中的“smtp”服务条目),同样,您必须打开端口 25 以进行出站连接,以便向 @gmail.com 地址发送任何消息。
端口 465 或 587 仅用于初始“消息提交”,即从各种邮件应用程序(如 Thunderbird 或 Roundcube)发送到您的自己的服务器。(例如,如果您尝试使用 Gmail 的“以...身份发送邮件”功能发送邮件从您的域名,这将使用端口 465 或 587。)
请注意,许多服务器托管提供商会阻止新客户使用端口 25(甚至是入站端口),以减少垃圾邮件,而且您通常需要开具一张票据才能解除限制。(搜索“aws port 25”)。
答案2
您没有配置任何“传输”设置(即没有设置 local_transport 或 virtual_transport 选项)
我只使用 virtual_transport 在多域环境中设置了 postfix,但我认为 local_transport 类似。您需要设置 local_transport 或 virtual_transport 来处理 main.cf 中的最终交付
您需要在 master.cf 中设置相应的条目来进行交付。我相信这通常与您用于 POP/IMAP 的任何内容相关 - 在我的情况下是 Dovecot - 尽管没有什么可以阻止您直接写入文件。
尽管价值不大,但 Postfix 配置文件的相关部分如下:
主配置文件
virtual_transport=finaldelivery
主配置文件
finaldelivery
unix - n n - - pipe flags=DRhu
flags=R user=mailuser argv=/usr/lib/dovecot/deliver -c /etc/dovecot/dovecot.conf -d ${recipient} -f ${sender}