C#定时发送邮箱设置

今天临时维护了前同事做的定时发送邮件Demo。

 

原来是使用网易163邮箱定时发送,但是会出现邮箱收不到邮件的情况。

今天把它改成了qq邮箱,发现qq邮箱比较稳定,基本没有漏掉的邮件。

 

但是在改的过程中,出现了一些配置上的问题,趁有时间记录下来。

 

1.先改smtp服务器,这个就不用说了。qq邮箱为smtp.qq.com

 

2.接着用你的qq登录邮箱,在设置——账户中,开启pop3/stmp设置(如果你的邮箱是刚激活的,需要等待十四天才能使用该功能)

 

3.开启后需要生成授权码,(qq邮箱在第三方客户端中,只支持使用账号+授权码,为了安全)

具体设置可见:http://service.mail.qq.com/cgi-bin/help?subtype=1&&no=1001256&&id=28

 

4.而网易原来是用没有使用ssl加密的25端口,到了qq邮箱,就不行了。必须要用ssl加密的465/587端口

 

基本是设置成这样,就可以使用SmtpClient类的实例Send方法发送邮件了,使用MailAddress类和MailMessage类封装要发送的信息。

 

其中遇到的问题:

(1)命令顺序不正确。 服务器响应为:Error: need EHLO and AUTH first !

解决方案:要开启smtp服务,入上上图所示。

 

(2)这里的密码使用授权码。

 

(3)参数或变量中有语法错误。 服务器响应为: mail from address must be same as authorization user

qq邮箱需要使用授权码登录,而不是邮箱密码。

 

 

暂未解决的问题:

<1>.不知道为什么使用465端口,一直显示操作超时。而使用587端口则一直能正常发送。

有大神知道为什么吗??请指教。

 

<2>.目前代码是使用Timer每秒来匹配一次配置文件的时间,如果相同,则执行发送邮件的代码。

感觉有点麻烦,接下来打算使用quartz.net来执行定时任务,应该更合适。

 

posted @ 2017-06-26 21:19  声全在握  阅读(1372)  评论(1编辑  收藏  举报