3

假设我使用 smtpclient 将我的电子邮件提交到我的本地 smtp 服务器。我如何知道电子邮件是否已实际发送?

4

2 回答 2

6

最重要的是,你没有。

SMTP 是一种断开连接的协议,而不是一种事务处理协议。当您发送电子邮件时,SMTP 只知道您和您的服务器之间发生了什么。完全有可能您的服务器可能正在排队邮件,并且由于网络问题而没有发送给最终收件人,而您永远不会知道。

您可以请求 DSN(交付状态通知)之类的内容,但并非所有服务器都支持它们。如果您的服务器确实支持它们,您可能需要查看请求一个。

我知道这不是你想要的答案,但它就是这样。

于 2010-01-27T13:10:08.223 回答
4

SmtpClient.SendCompleted 事件可能会有所帮助

于 2010-01-27T06:09:12.787 回答