C#编写发送邮件到SMTP服务器,如何得知SMTP服务器是否成功将此邮件发出??

时间:2021-12-28 18:12:18
使用CDO 或 System.Web.Mail类成功将邮件发送到SMTP SERVER ;并通过油箱已经收到邮件或收到发送不成功的邮件;但我想知道如何在程序中编码获得SMTP SERVER那些邮件发送成功,那些失败??

不会去查SMTP SERVER的BADMAIL文件夹吧??

请高手指点!

9 个解决方案

#1


發送的郵件是否成功不在SMTP,而是你的郵件的收件著所在服務器,目標服務器負責判定是否找到收件人,SMTP找不到中繼或者收件著所在服務器時也不會立即返回錯誤.

所以你只能監視你的發件地址,看是否有退件.

以上個人見解

#2


邮件发送成功与否SMTP是应该知道的,至少SMTP发送时会得到是否发送成功的返回的。如果成功则把邮件从待发邮件队列(Queue文件夹)删除,不成功则邮件将重新进入待发邮件队列(Queue文件夹)如果在SMTP SERVER设置的尝试次数或时间限制内仍不能成功发送,则将邮件转移到存放不能投递且不能返回发送者的邮件(称为死信)(Badmail文件夹);
C# 能不能得到SMTP SERVER确认指定邮件是否发送成功的消息??

以上个人见解,大家讨论!

#3


我也在问这个问题,关注!!!

#4


这个要了解TCP/IP的话好些

#5


smtp协议本身就是简单协议。Simple Mail Transport Portocal

#6


发送成功会有220的返回值的.

当然你用System.Web.Mail是不可能看得到的.

你自己telnet上一个smtp服务器,输入命令,不就什么都知道了.

SMTP又不难.

#7


you can Get Server Response.there is an example in C# corner ,maybe help you
http://www.c-sharpcorner.com/Internet/SMTPMailProgramRS.asp

#8


首先感谢大家的回复,可是大家回答的都不能解决我的问题,大家的的解释都停留在如何编写客户端发送邮件到MAIL 服务器上,可是没有讨论一个邮件服务器(如mail.hotmail.com)如果发送邮件失败会给你返回一个发送失败的信件,我是想知道如何通过程序捕捉这个事件,不是我发送到邮件服务器,而是邮件服务器向外发送的结果。

#9


关注

#1


發送的郵件是否成功不在SMTP,而是你的郵件的收件著所在服務器,目標服務器負責判定是否找到收件人,SMTP找不到中繼或者收件著所在服務器時也不會立即返回錯誤.

所以你只能監視你的發件地址,看是否有退件.

以上個人見解

#2


邮件发送成功与否SMTP是应该知道的,至少SMTP发送时会得到是否发送成功的返回的。如果成功则把邮件从待发邮件队列(Queue文件夹)删除,不成功则邮件将重新进入待发邮件队列(Queue文件夹)如果在SMTP SERVER设置的尝试次数或时间限制内仍不能成功发送,则将邮件转移到存放不能投递且不能返回发送者的邮件(称为死信)(Badmail文件夹);
C# 能不能得到SMTP SERVER确认指定邮件是否发送成功的消息??

以上个人见解,大家讨论!

#3


我也在问这个问题,关注!!!

#4


这个要了解TCP/IP的话好些

#5


smtp协议本身就是简单协议。Simple Mail Transport Portocal

#6


发送成功会有220的返回值的.

当然你用System.Web.Mail是不可能看得到的.

你自己telnet上一个smtp服务器,输入命令,不就什么都知道了.

SMTP又不难.

#7


you can Get Server Response.there is an example in C# corner ,maybe help you
http://www.c-sharpcorner.com/Internet/SMTPMailProgramRS.asp

#8


首先感谢大家的回复,可是大家回答的都不能解决我的问题,大家的的解释都停留在如何编写客户端发送邮件到MAIL 服务器上,可是没有讨论一个邮件服务器(如mail.hotmail.com)如果发送邮件失败会给你返回一个发送失败的信件,我是想知道如何通过程序捕捉这个事件,不是我发送到邮件服务器,而是邮件服务器向外发送的结果。

#9


关注