我正在使用一个 perl 模块(Mail::Sendmail)来sendmail
发送东西。它没有工作,但没有给我任何错误。
所以现在我怀疑sendmail
。我试过:
telnet 127.0.0.1 25
mail from:[email protected]
rcpt to:[email protected]
data
subject: subject line
sgiopjsdoigjsd
sdgsdg
sdgfsdg
.
quit
我收到“邮件已接受投递”消息,这是应该发生的情况。我等了几分钟,收件箱里什么也没有。所以我看了一下/var/log/maillog.3
,它没有任何与我刚刚所做的事情相关的内容。
我尝试通过这样做在本地向另一个用户发送邮件,并且成功了。但日志中仍然没有任何内容(这让我相信真正的日志在其他地方)。mail [email protected]
加起来:
- 无法发送邮件到云端,但可以在本地使用
- sendmail 日志文件的位置未知
答案1
老实说,这听起来像是 sendmail.cf 问题,就好像它没有配置为非本地电子邮件,或者配置错误。
该文件/var/log/maillog.3
几乎肯定是一个“旧”日志文件,因此不会向其中写入任何新内容。你没有提到你正在使用什么 Linux 发行版、BSD 或 Unix,但当前日志文件(sendmail 当前附加到的日志文件)可能名为“/var/log/maillog
如果/var/log/maillog
不存在,你可以尝试停止并启动 sendmail,然后查看是否存在”。创建 /var/log/maillog 或其他文件。
调试:正如您所发现的,旧telnet localhost 25
技巧非常有用,但您可以使用旧 BSD 之类的东西Mail
程序的“-v”选项之类的东西。尝试http://heirloom.sourceforge.net/mailx.html为来源。使用它,您可以看到 SMTP 会话是什么样子,这会有所帮助。
如果你真的很绝望,你可以在调试模式下运行 sendmail:
sendmail -bt -C /whatever/sendmail.cf
您可以输入电子邮件地址并查看 sendmail 对它们执行的操作。
答案2
您是否正在使用另一个 MTA(例如 exim4)?
看一下/var/log/exim4/*
,可能就是这样。