简短版:我正在尝试用 Mutt 发送邮件。它失败并说“闹钟”。这是什么意思,我该如何解决?
长版:我有一个运行tiny tiny rss的 ubuntu 服务器。它使用 php 的 mail() 函数发送每日电子邮件摘要。我想让它起作用。我有一个带有谷歌应用程序的域,所以我希望从 [email protected] 发送邮件。我尝试了 postfix 和 sendmail,但我未能正确配置它们(而且我认为因为它们是 MTA,所以无论如何它们都是矫枉过正的)。我听说(阅读:希望)mutt 可用于替换 sendmail 以实现 php 的目的。因此,在从 mutt 发送邮件的最后,我为自己的 gmail 帐户创建了一个 .muttrc,并且发送工作正常。所以我怀疑 mutt 安装正确。但是,当我将配置更改为适用于我的域名时,它不起作用。这是我的新 .muttrc:
set from = "[email protected]"
set realname = "vassago"
set imap_user = "[email protected]"
set imap_pass = <password>
set smtp_url="smtp://[email protected]:587/"
set smtp_pass=<password>
set folder = "imaps://imap.gmail.com:993"
set spoolfile = "+INBOX"
set postponed ="+[Gmail]/Drafts"
set header_cache = ~/.mutt/cache/headers
set message_cachedir =~/.mutt/cache/bodies
set certificate_file =~/.mutt/certificates
set move = no
set imap_keepalive = 900
如果我只是运行 mutt,我可以看到电子邮件出现。我尝试使用 smtp_url 和 smtp_pass 删除行,但这也不起作用。使用此配置,我运行
echo "hi again" | mutt -s "test03 from mutt" <my email address>
过了一段时间,“闹钟”打印出来,程序返回,邮件表面上没有发送。我究竟做错了什么?
罪魁祸首是 smtp_url。我改变了这一行:
现在它可以工作了。我仍然不知道“闹钟”是什么意思。
实际上,“闹钟”是与超时有关的 mutt 错误消息。
最近,在尝试调试我的 mutt “.muttrc” 文件时,我一直被那个可爱的“闹钟”错误指示所困扰。主要问题原来是“set smtp_url”参数和 msmtp 的 connect_timeout 参数的组合。本地互联网服务充其量是参差不齐的,因此存在超时问题。
主要问题:当我通过命令行向 mutt 发送多行文本文件时:cat report.out | mutt -s "Summary" "[email protected]" mutt 用神秘的消息反复炸毁 闹钟 我浪费了大量时间来寻找 mutt 内部的问题。有一个问题,但罪魁祸首是在 .msmtprc 中。先修好。
MSMTP 背景:但首先,一些背景。我正在运行 msmtp,并认为它工作正常:例如,cmd 行 cat report.out | msmtp -a default [email protected] 按预期发送文件的最后一行,没有主题。
这是 .msmtprc 的副本。我已经包含了启用安全 smtps 的技巧:
-------------------------------------------------- --------------
-------------------------------------------------- --------------
键入 msmtp --serverinfo 会提供各种信息,例如(仅显示前两行): smtp.gmail.com 上的 SMTP 服务器(qo-in-f109.1e100.net [173.194.66.109]),端口 465: smtp.gmail.com ESMTP w44sm25263807qta.4 - 证明 smtps 配置正确的 gsmtp(到目前为止)。如果未正确配置,您将得到以下信息: msmtp:服务器发送空回复 msmtp:无法发送邮件(帐户默认来自 /home/owner/.msmtprc)
在修改完 msmtp.rc 之后,我恢复了测试,在 msmtp 和 mutt 之间来回切换。该程序偶尔会起作用,但无法重现。回想起来,这应该表明存在超时问题。(我将在这里省略很多悲伤。)让我们切入正题,在 .msmtprc 中添加以下行(它解决了问题): set connect_timeout = 300 在继续之前,请务必使用 msmtp --serverinfo 测试任何更改。在理顺 mutt 之前,msmtp 服务器必须工作。
MUTT 问题/解决方案:接下来,我通过在 smtp_url 参数中包含主机名来更正 .muttrc。我注释掉了:# set hostname=gmail.com 并将主机名插入 url:set smtp_url = "smtps://[email protected]@smtp.gmail.com:465
结果:一旦我添加了 .msmtprc 超时行并修复了上面提到的 .muttrc host_name 问题,一切都运行良好,尽管速度很慢。缓慢是由于糟糕的互联网连接。有两家大型医院,每天两次进行重大数据转储,占用了主干。另外,由于郊区的基础设施很差,似乎每次云越过连接就会中断。请写信给你的参议员和国会议员,支持互联网中立。