我使用 Mac OS X 终端的邮件功能通过电子邮件将数据库查询的结果发送给我。大多数情况下它都能正常工作,但有时邮件到达之前会有很长时间的延迟(通常是在运行另一个类似的脚本时)。看起来有某种发送队列,但我找不到任何提及此内容的文档。我需要做些什么才能从终端刷新邮件?
更新:有时似乎根本就没有传送,尽管控制台上没有出现任何错误。很奇怪。
答案1
我认为这种情况发生是因为 MacOSX >= 10.4 中的 postfix 配置为“按需”运行。要永久启用它,您必须编辑
/System/Library/LaunchDaemons/org.postfix.master.plist
并添加一些设置:
<key>RunAtLoad</key>
<true/>
<key>OnDemand</key>
<false/>
另请参阅 stephendv 在此处的帖子:
http://hints.macworld.com/article.php?story=20031025022626398
答案2
OS X 已安装并配置了 Postfix 以供基本使用。其配置文件位于/etc/postfix
。文档位于postfix.org。
查看/var/log/mail.log
可能的错误信息。
查看/var/spool/postfix
Postfix 已接受但还未发出的排队消息。
我猜是您的 ISP 阻止了出站消息。通过阻止发往其他服务器上端口 25 的出站流量,ISP 可以阻止受感染计算机在不知情的情况下发送的垃圾邮件。ISP 只会允许您的计算机连接到其指定 smtp 服务器上的端口 25。
如果这是你的问题,添加一行smtp_fallback_relay喜欢/etc/postfix/main.cf
这个:
smtp_fallback_relay = smtp.comcast.net, smtp.myisp.net
(将这些域名替换为您 ISP 的 smtp 服务器的域名)
答案3
在 SnowLeopard 上,postfix 已预先配置为由 launchd 按需启动(参见 /system/library/org.postfix.master.plist)。
就我的情况而言,邮件在没有任何 PostFix 配置的情况下发送,但收件人的邮件服务器拒绝了它:
master-mini postfix/smtp[3691]: 0200D6FFBF0: to=<[email protected]>, relay=mail.example.com[xx.xx.xx.xx]:25, delay=2.7, delays=0.01/0/1.9/0.76, dsn=5.0.0, status=bounced (host mail.example.com[xx.xx.xx.xx] said: 550-Verification failed for <[email protected]> 550-The mail server could not deliver mail to [email protected]. The account or domain may not exist, they may be blacklisted, or missing the proper dns entries. 550 Sender verify failed (in reply to RCPT TO command))
收件人的邮件服务器抱怨,因为 master-mini.local(本地主机名)是无效的域名。Zeroconf 使用顶级伪域 local。
在这种情况下,解决方案是编辑 /etc/postfix/main.cf 并将 myhostname 更新为有效域。