可以在 PHP 中计算通过 SMTP 发送的消息数吗?

Posted

技术标签:

【中文标题】可以在 PHP 中计算通过 SMTP 发送的消息数吗?【英文标题】:Possible to count number of messages sent via SMTP in PHP? 【发布时间】:2011-01-25 12:12:04 【问题描述】:

有点远,但是否可以计算给定 SMTP 帐户在一小时内发送了多少封电子邮件?

假设 john@example.com 通过 Thunderbird 和 php 脚本发送电子邮件。

该 PHP 脚本能否以某种方式首先检查该小时发送了多少封电子邮件?

显然,PHP 脚本可以轻松记录它发送的电子邮件数量,但无法知道 John 是否从他的电子邮件客户端或其他脚本发送了太多电子邮件...

非常感谢。

【问题讨论】:

【参考方案1】:

如果SMTP服务器没有这样的统计数据,那么就无法获取到号码。

您为什么要问,是否有一些权威机构会统计电子邮件并在您达到限制时拒绝?如果是这样,请询问该机构。

【讨论】:

【参考方案2】:

您可以尝试分析/var/log/mail.log 文件。通常它会保留您需要的所有信息。例如,您可以编写一个脚本,从 mail.log 中收集所有数据,对其进行分析,然后将其放入某个数据库表中。该脚本可以由 cron 每小时运行一次,左右(取决于您何时需要信息)

【讨论】:

【参考方案3】:

简短的回答是否定的(康斯坦丁的回答有很多错误,但批评它可能无济于事)。您要解决的问题是什么?为什么您认为 PHP 脚本是正确的解决方案?

C.

【讨论】:

问题是已经存在的 PHP 脚本每小时运行一次,并且偶尔会发现办公室内的人类用户已用完电子邮件限额。他们希望自动电子邮件来自他们通常用来联系客户的相同帐户 - 因此来自脚本和实际用户的电子邮件计入相同的限制。 因此,当您当前使用的 MTA 拒绝发送或切换到其他 MTA 时,请停止分析问题并通过运行您自己的智能中继将消息排队来解决问题。

以上是关于可以在 PHP 中计算通过 SMTP 发送的消息数吗?的主要内容,如果未能解决你的问题,请参考以下文章

PHP通过SMTP实现发送邮件_包括附件

使用 codeigniter 通过 gmail smtp 服务器发送电子邮件

中科大 计算机网络14 EMail SMTP简单邮件传输协议 POP3邮件传输协议 IMAP消息访问协议 HTTP超文本传输协议

问题通过 SMTP 发送邮件

在 Golang 中附加文件并通过 SMTP 发送时没有正文部分的电子邮件

通过 smtp.gmail.com 发送 php 邮件连接