System.Net.Mail ,发送邮件的时候,卡住了
SmtpClient smtp = new SmtpClient(); //实例化一个SmtpClientMailMessage mm = new MailMessage();
//邮件发送
//其他设置省略
smtp.Timeout = 60*1000;//超时
smtp.Send(mm);
mm.Dispose();
smtp.Dispose();
邮件我能收到,而且邮件的内容都正确,但是程序卡住了,不继续运行了。这个问题不是每次都出现,程序运行几天后,会出现。有大虾遇到过这样的问题吗?
--------------------编程问答-------------------- 换个方法,你怎么还设置延时呀! --------------------编程问答-------------------- 去掉延迟用默认的,加catch或者自定义一个时间判断当前邮件发送了多长时间,再做相应处理。 --------------------编程问答-------------------- 这个卡住的问题原因是设置“超时”的问题吗?有尝试了几次,超时设置是有用的,是不是网络环境导致这个问题呢? --------------------编程问答-------------------- 程序连续运行几天卡住,有可能是你的邮箱服务器的问题,群发邮件的怎么说呢,代码方面的,一般问题不大,最主要的是邮箱服务器的问题,同一IP连续向外发送邮件,有可能IP被锁定,有可能邮箱服务器的规则限制了多少时间内的发送次数等等,很多原因吧,现在反垃圾邮件,邮箱服务器那边都有很多限制规则,你可以在网上查查资料。 --------------------编程问答--------------------
我的邮件是群发的,不过间隔也有10分钟左右,也不是高频率的一直发送,网上查了很久没有发现说发送卡住的问题,而且主要是那边已经收到邮件了,这个很奇怪,如果是IP被封了话,应该邮件根本就发不出去 --------------------编程问答--------------------
也有可能是网络堵塞,如果是动态的IP,在停顿的间隔加入重启路由的功能,在看看连续运行几天了,程序占用的内存是否变大,看看是否有某些资源没有释放。 --------------------编程问答-------------------- 我觉得邮件都受到了,应该smtp.Send(mm); 已经执行完了。
打印下log,看看执行到哪里了。 --------------------编程问答--------------------
我觉得邮件都受到了,应该smtp.Send(mm); 已经执行完了。
打印下log,看看执行到哪里了。
开始我也这么觉得,邮件都收到了,应该是send完了,可是下面就剩下 mm.Dispose()和smtp.Dispose();
这两个有可能卡住吗?是否是释放什么资源,但是该资源被锁了 --------------------编程问答-------------------- 我也出现了这个问题,请问楼主找到了原因了吗?
补充:.NET技术 , C#