BZi*_*ink 13 .net c# system.net.mail smtpclient
SmtpClient发送方法返回void.有没有办法得到服务器响应?除非它抛出异常,我才假设它成功了吗?
我指的是...... http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.aspx
Dav*_*vid 18
要回答你的第二点,是的,你所能做的就是假设它成功了 - 这意味着它将消息传递给服务器并且服务器接受它,除非你得到一个例外.
你可能已经知道其余的了,但以防万一......
从那里,电子邮件可能会丢失,而不是以任何方式提供.您的服务器可能会接受它并决定不发送它,或接受它并在崩溃之前断电.它可能会被一个垃圾邮件过滤器阻止,等等.
您可以将电子邮件视为与常规邮件类似,因为它通过发件人和收件人之间的几手牌传递.从您的代码中,您只能确认它到达您用来发送的SMTP服务器,这类似于将其交给邮局的出纳员.您不知道(或需要知道)消息是如何从那里路由的.它可以是空中,地面或载体鸽.你不在乎 - 你不需要知道它是如何发送的,只要你相信它们知道如何发送它.(电子邮件也是如此.)
如果您需要确认收件人是否已将其打开,则可以在服务器上的HTML邮件中嵌入图片,并在访问该图片时在日志中进行跟踪等.(Google电子邮件跟踪和电子邮件打开跟踪)
另一方面...
如果服务器拒绝它,那么你会以一种说法来获得服务器响应 - 错误中应该有一个错误代码和一个描述,你可以用它来解决它没有成功的原因,或者使用错误处理尝试另一条路线等
您可以使用 SendCompleted 事件来检查您的 smtpclient 是否正常工作,如下所示:
http : //msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.sendcompleted.aspx
但您无法确认您的消息到达收件人,因为它可能卡在消息链中的任何服务器/过滤器中。
| 归档时间: |
|
| 查看次数: |
25448 次 |
| 最近记录: |