从 PHP 获取使用 mail() 发送的邮件日志(sendmail?)

Kri*_*ves 14 email linux php sendmail exim

在一些服务器更改之后,我们的 PHP 配置被破坏了,这导致客户端的大型邮件列表在大约 4,000 个或更多地址中部分超时。我们希望尽可能避免发送重复邮件,并且我们有原始邮件列表。

邮件是使用 PHP 的mail()函数发送的,该函数使用sendmail,表示它正在使用Exim. 我见过命令:

sendmail -bp
Run Code Online (Sandbox Code Playgroud)

这给了我一个显示已发送的邮件列表。这个列表不是很大,而且可能是准确的(意味着脚本在只发送了一百封左右的电子邮件后就超时了)

sendmail -bp获得此列表的最佳方式吗?

编辑:mail.log/var/log/mail.log或 via 中找不到任何文件locate mail.log,但 WHM 似乎对此有一些信息。

Zor*_*che 11

在基于 Debian 的系统上,exim 将数据记录在/var/log/exim4/mainlog.

您可能会发现eximstats工具可用于解析和剔除该日志文件中的有用信息。


use*_*686 7

sendmail -bp(和mailq) 仅列出邮件队列:已排队但尚未发送的消息。它不会包括那些成功传递的消息。

您应该检查/var/log/mail.log(和其他日志文件)-它们几乎总是有每次传输的记录。


小智 6

php 5.3.0 添加了 2 个设置,可以轻松追踪流氓脚本:

mail.add_x_header
mail.log
Run Code Online (Sandbox Code Playgroud)

http://php.net/manual/en/mail.configuration.php