在对服务器进行一些更改后,我们的 PHP 配置被破坏,导致客户的大型邮件列表部分超时,其中大约有 4,000 个地址或更多。我们希望尽可能避免发送重复邮件,并且我们有原始邮件列表。
该邮件是使用 PHP 的mail()
函数发送的,该函数使用sendmail
,这表明它正在使用Exim
。我见过以下命令:
sendmail -bp
它给出了已发送邮件的列表。这个列表不是很大,而且可能很准确(这意味着脚本在发送了大约一百封电子邮件后就超时了)
sendmail -bp
获取此列表的最佳方式是什么?
编辑:我无法在或通过中找到任何mail.log
文件,但 WHM 似乎有一些相关信息。/var/log/mail.log
locate mail.log
答案1
在基于 Debian 的系统上,exim 以 的形式记录数据/var/log/exim4/mainlog
。
你可能会发现进出口统计该工具可用于解析并从日志文件中剔除有用的信息。
答案2
sendmail -bp
(和mailq
)仅列出邮件队列:已排队但尚未发送的邮件。它不会包括已成功发送的邮件。
您应该检查/var/log/mail.log
(和其他日志文件) - 它们几乎总是有每次传输的记录。
答案3
php 5.3.0 添加了 2 个设置,使得追踪恶意脚本变得容易:
mail.add_x_header
mail.log