标签:send 操作 sage error 超时 命令 匹配 定时 同事
今天临时维护了前同事做的定时发送邮件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来执行定时任务,应该更合适。
标签:send 操作 sage error 超时 命令 匹配 定时 同事
原文地址:http://www.cnblogs.com/zsq23837880/p/7082506.html