各位大侠们,跪求一个解决方案。以下是我用System.Net.Mail发送email的代码摘要
// 587;//Gmail使用的端口
SmtpClient client = new SmtpClient("smtp.gmail.com",587);
client.DeliveryMethod = SmtpDeliveryMethod.Network;
Thread.Sleep(50);
// Your user name & password
client.Credentials = new System.Net.NetworkCredential("username", "password");
Thread.Sleep(50);
client.EnableSsl = true; //经过ssl加密 */
MailMessage message = new MailMessage();
message.From = new MailAddress("[email protected]");
message.Subject = "test";
message.IsBodyHtml = true;
Encoding ed = Encoding.GetEncoding("utf-8");
message.BodyEncoding = System.Text.Encoding.UTF8;
message.Body="test";
client.SendCompleted += new SendCompletedEventHandler(SendCompletedCallback);
client.SendAsync(message, null);代码通过了长时间的测试,几乎所有的邮箱都能发送成功,但总是偶尔出现发送不成功的地方,我通过SendCompleted这个方法捕获了发送异常,但发送不成功的时候,也没有返回任何异常,提示总是成功的,但对方就是收不到。
我本身是通过gmail的邮箱smtp来发送的,发送gmail自己的邮箱好像基本都能成功,但如果是番茄花园xp的操作系统,就怎么也发送不出去。以上代码使用的是.net framework2.0和.net framework3.5都测试了,都能发送成功,window xp、win2003、xin7都没有问题,唯一的问题就是有时候发送后,对方就是收不到,没有什么规律,同样一个收件地址,有时能成功,有时就会收件人收不到,现在唯一发现的小规律就是某些加密级别比较高的邮件服务器或者国内的某些企业邮箱,总是会出现收不到的情况,发送gmail基本很少失败。
为此小弟特别苦恼,如果完全发送不成功,也就认了,经过了快半年的时间实际使用测试,还是没有找到发不成功的规律。曾经一度想换代码,但没有发现更好的代码,不知道各位有没有更好的方案;或者对我以上遇到的问题有没有一些经验,可以交流一下。
跪谢了!
没分了,全部的分都押上了
// 587;//Gmail使用的端口
SmtpClient client = new SmtpClient("smtp.gmail.com",587);
client.DeliveryMethod = SmtpDeliveryMethod.Network;
Thread.Sleep(50);
// Your user name & password
client.Credentials = new System.Net.NetworkCredential("username", "password");
Thread.Sleep(50);
client.EnableSsl = true; //经过ssl加密 */
MailMessage message = new MailMessage();
message.From = new MailAddress("[email protected]");
message.Subject = "test";
message.IsBodyHtml = true;
Encoding ed = Encoding.GetEncoding("utf-8");
message.BodyEncoding = System.Text.Encoding.UTF8;
message.Body="test";
client.SendCompleted += new SendCompletedEventHandler(SendCompletedCallback);
client.SendAsync(message, null);代码通过了长时间的测试,几乎所有的邮箱都能发送成功,但总是偶尔出现发送不成功的地方,我通过SendCompleted这个方法捕获了发送异常,但发送不成功的时候,也没有返回任何异常,提示总是成功的,但对方就是收不到。
我本身是通过gmail的邮箱smtp来发送的,发送gmail自己的邮箱好像基本都能成功,但如果是番茄花园xp的操作系统,就怎么也发送不出去。以上代码使用的是.net framework2.0和.net framework3.5都测试了,都能发送成功,window xp、win2003、xin7都没有问题,唯一的问题就是有时候发送后,对方就是收不到,没有什么规律,同样一个收件地址,有时能成功,有时就会收件人收不到,现在唯一发现的小规律就是某些加密级别比较高的邮件服务器或者国内的某些企业邮箱,总是会出现收不到的情况,发送gmail基本很少失败。
为此小弟特别苦恼,如果完全发送不成功,也就认了,经过了快半年的时间实际使用测试,还是没有找到发不成功的规律。曾经一度想换代码,但没有发现更好的代码,不知道各位有没有更好的方案;或者对我以上遇到的问题有没有一些经验,可以交流一下。
跪谢了!
没分了,全部的分都押上了
或可能与邮箱有关
jmail不知道怎么使用ssl,gmail需要使用ssl的
你能不能不使用免费的smtp,有可能的话使用自己的smtp服务器,很多时候,免费其实意味着不用负责任。
对代码来说,调用发送client.Send成功了,代码的任务就结束了,其他的一切就交给smtp服务器,
smtp传送email过程中出错,一般会有一个回复发送到你的发送者邮箱里,你可以查看一下,基本对方拒收,网络不通,查无此人等错误都能收到错误回复,
如果没有错误回复,那应该就是smtp传送成功了,很有可能接收方smtp服务器把你的email抛弃掉了(这个不好查),或者你的outlook等email管理软件把你的email归到垃圾邮件里面,
如果你连续发邮件的话 Gmail可能会认为你在发垃圾邮件,系统会暂停一段时间发邮件的功能。
我比较认同16楼说的一个,有可能被Gmail当成垃圾邮件处理了,smtp服务器不给发送,我代码做了异常捕获的,没有任何错误报告,并且有发送失败后的提醒功能,也没有收到发送失败的邮件。
有人说可能和客户端的杀毒软件有关系,有些人说把杀毒软件关闭后就能发送。但这个不太好查。
我比较奇怪的是为什么outlook的发送都很成功,有人知道outlook是用什么技术发送的吗?或者说outlook有没有开放什么接口,可以直接调用outlook的发送功能
这东西是不是不是代码本身的问题哦
楼主问一下,没有发送到那里,有问题吧!