如何从 SMTP 服务器获取反馈,并从同一网络中的另一台服务器连接到该服务器?

如何从 SMTP 服务器获取反馈,并从同一网络中的另一台服务器连接到该服务器?

我有以下情况:

[HTTP服务器]:处理消息

[SMTP服务器]:仅发送邮件

[HTTP 服务器] === 连接到 ===>>> [SMTP 服务器] === 发送消息 ===>>> [世界]

好的,一切进展顺利。

我的观点是:如何从[SMTP 服务器] 获取反馈以知道我的消息是否真的已发送?

使用 php-mailer 或任何语言/api(在[HTTP 服务器]中),我只收到服务器之间连接的反馈:“与 SMTP 服务器的连接正常”,但这并不能证明我的消息确实已发送。

我的意思是,如何获取 /var/log/maillog 中显示的每条消息的“status=sent”或“status=bounced”?

我在过去几周确实尝试过这个,但没有成功。

我的工作方式是,当 [HTTP 服务器] 连接到 [SMTP 服务器] 时,从邮件日志中获取消息 ID,因此稍后我将(从 [HTTP 服务器] 到 [SMTP 服务器] 的 SSH)使用此消息 ID 在 /var/log/maillog 中查找并获取此“status=sent”或“status=anything”。

但我很确信有一种自动化的方法可以做到这一点。

有人知道吗?

答案1

知道您是否捕获了 NDR 和类似信息的唯一方法是拥有一个有效的发件人:或回复:地址来捕获此类信息,并确保您的 SMTP 服务器将生成并传递这些信息。

答案2

这就是 SMTP 的工作方式,您将邮件发送到下一台服务器,它会告诉您是否接受了邮件。除此之外,还需要访问中继服务器。

如果您希望自动化,可以让邮件服务器每隔 5 分钟向您发送 /var/log/maillog 片段。

相关内容