我的服务器根据情况通过sendmail
或发送电子邮件。SMTP
我正在尝试查找 SMTP 的日志。消息来源表明我应该看看
/var/log/maillog
(https://serverfault.com/questions/59602/where-to-check-log-of-sendmail,
https://www.centos.org/forums/viewtopic.php?t=8700)
它确实包含通过 发送的所有内容的日志sendmail
,但 SMTP 消息明显不存在。
使用 sendmail 时,它是在php
脚本中完成的,该脚本只是下降到 shell 并将消息内容通过管道传输到sendmail
.不幸的是,这SMTP
是使用php
类包装器来处理的,这可能会导致日志记录中的差异。
它们可能会被记录在其他地方吗?我怎样才能确定这一点?是否可以关闭 SMTP 日志记录?我如何确定这一点,如果是的话,请打开日志记录?
使用 Centos 6.6 Final
答案1
如果您的 PHP 脚本正在建立直接 SMTP 连接,则它会打开一个套接字(通常是端口 25 - 但也可以是任何端口)。不幸的是,您不会找到包罗万象的邮件日志,因为您的服务器永远不会意识到这是一个邮件连接,因此无法真正记录它(当然,没有特殊的欺骗或意识)。
不过,您可以做的一件事是通过 MTA(如 sendmail、qmail、exim 等)发送所有邮件。配置 MTA 以使用 SMTP。然后,MTA 将捕获所有外发邮件并记录下来 - 正如您所期望的那样。
另一个技巧是修改您的 PHP 脚本以手动记录电子邮件 - 但我确信您考虑过这一点。