System.Net.Mail.SmtpClient
不止可以发邮件,而且可以获得状态返回,可以确切的知道邮件是否发送成功,如果没有成功是原因导致的,很好用啊
System.Net.Mail.SmtpClient发送后有一个状态值返回,具体看可以去百度一下“SMTP状态码”
至于对方收不到,这个不是你这边能够控制的,如果你成功发送了对方还收不到,一般都是被对方信箱给过滤掉了,现在信息过滤垃圾邮件很厉害,群发的邮件非常有可能被过滤掉,而且发送次数多了之后,你的服务器IP可能被加入黑名单,以后对方就再也收不到了
总之,你可以通过SMTP判断发送状态,如果SMTP返回状态是发送成功,那么其他的事不是你能够控制的
PS:频率太快会被封,比如往a@163.com/b@163.com/c@163.com这三个地址一分钟内分别发3封信,那么网易将认为你一分钟给他发了9封信,被封掉的可能性会变得很大,尤其当你要发的地址里有成百上千个163信箱地址时,基本上可以确定除了前几封,别的一概收不到,而且下次再发估计也不可能有人收到了,所以建议做了队列,控制一下发送频率,这个频率不好搞,一般1分钟3封没什么问题,5以上危险,动态值,无法确定
net framework 2.0自带的System.Net.Mail.SmtpClient
我们用过jmail 倒没有发现这个问题
丁学说的被封是一个大问题