我的服务器设置为仅生成外发电子邮件(不接收),并且在尝试联系 smtp.example.com 时超时
本质上,电子邮件是由 myserver.example.com 上的一个进程生成的,发送到本地主机上的 postfix,后者充当卫星系统并将电子邮件中继到 smtp.example.com
myserver.example.com 上的 postfix 的错误消息是:
Date/time-stamp myserver postfix/smtp[####]: ##########: to=<[email protected]>, relay=smtp.example.com:25 delay=1029, delays=729/0.01/300/0, dsn=4.4.2 status=deferred (conversation with smtp.example.com timed out while receiving the initial server greeting)
无论收件人是谁,都会出现同样的错误。发出的电子邮件会排队,永远不会被发送。
我已经确认了此超时,telnet smtp.example.com 25
并发现我甚至没有从 SMTP 服务器收到初始 220 响应。
但是,如果我telnet -l myuser smtp.example.com 25
这样做,我会立即收到 220 响应,并且我可以按预期发送电子邮件。
我已将以下条目添加到配置 postfix 以使用 SMTP-AUTHmain.cf
relayhost = smtp.example.com
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/password
smtp_sasl_security_options = noanonymous
smtp_connect_timeout = 120s
有人能建议我如何更改我的 postfix 配置以获得快速类型(或任何) 我使用时得到的响应telnet -l myuser
?
答案1
SMTP 无法理解您使用 -l 设置的用户,因为它是除 telnet 之外的另一种协议。
我猜测,通过指定 -l,您的 telnet 客户端会自动将一些内容发布到其中smtpd
,然后您看到的输出就是它对任何随机输入的响应?
但无论如何。如果您只是远程登录到您的smtpd
的端口 25 并且根本没有输出,那么在您连接时日志中可能存在一些错误。也许您应该尝试在连接时使用 检查日志tail -f
?根据您的发行版,日志可能位于不同的文件中,例如在 SuSE 上它将是:
tail -f /var/log/mail.info /var/log/mail.err /var/log/mail.warn
现在,当您运行此程序时tail
,同时连接到smtpd
,以查看是否有一些错误写入日志。