教程:ASP.NET用QQ,网易发送邮件以及添加附件
这是我用QQ邮箱出现的异常:
命令顺序不正确。 服务器响应为:Error: need EHLO and AUTH first ! 无法从传输连接中读取数据: net_io_connectionclosed
解决方法:
首先去邮箱设置一下内容:
1.开启SMTP,
2.申请授权码.(授权码作为QQ邮箱登陆密码使用.)
QQ邮箱帮助中心:(可查询到QQ邮箱使用SMTP的端口,服务器地址和如何设置SSL以及客户端配置)
http://service.mail.qq.com/
如果这些已经弄好了,应是代码有问题.请参考C#代码部分.
QQ邮箱代码:
注意:用户名不加后缀"@qq.com",密码使用生成的授权码,SSL设置为true
方法一:
(环境:vs2015 mvc , 已测试成功)
1
2
3
4
5
6
7
8
9
10
11
12
|
WebMail.SmtpServer = "smtp.qq.com" ; WebMail.SmtpPort = 587; WebMail.EnableSsl = true ; WebMail.UserName = "8448xx4" ; WebMail.Password = "ujalggwrqpvdbghi" ; WebMail.From = "8448xx4@qq.com" ; //获取或设置发件人的电子邮件地址 WebMail.Send( to, subject,content"); //该方法有许多重载可参考msdn library //to 1:该收件人的电子邮件地址。 //subject2:邮件标题 //content3.正文 |
方法二
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
string txtFullPath = HttpContext.Current.Server.MapPath( "~/" )+ @"show/XX合约.txt" ; //创建一个附件对象 Attachment objMailAttachment = new Attachment(txtFullPath); //创建邮件消息 MailMessage objMailMessage = new MailMessage(); objMailMessage.From = new MailAddress( "8448xx4@qq.com" ); //源邮件地址 收件人 objMailMessage.To.Add(usermail); objMailMessage.Subject = "活动通知!" ; //发送邮件的标题 //将附件附加到邮件消息对象中 objMailMessage.Attachments.Add(objMailAttachment); //正文 objMailMessage.Body = "请在2016在六号楼.." ; //objMailMessage.IsBodyHtml = true; SmtpClient SmptpMail = new SmtpClient(); //设置发件箱的SMTP服务器 SmptpMail.Host = "smtp.qq.com" ; //SSL设置为true SmptpMail.EnableSsl = true ; //SMTP使用的端口 SmptpMail.Port = 465; //QQ用户名,和授权码 SmptpMail.Credentials = new NetworkCredential( "8448xx4" , "gsdahhe!" ); SmptpMail.Send(objMailMessage); |
网易邮箱:(已经测试成功, ps.我网易邮箱好像没有设置过STMAP和授权码,似乎账号,密码可以直接用)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
string txtFullPath = HttpContext.Current.Server.MapPath( "~/" )+ @"show/XXX合约.txt" ; //创建一个附件对象 Attachment objMailAttachment = new Attachment(txtFullPath); //创建邮件消息 MailMessage objMailMessage = new MailMessage(); objMailMessage.From = new MailAddress( "198489xx@163.com" ); //源邮件地址 objMailMessage.To.Add(usermail); //收件人 objMailMessage.Subject = "活动通知!" ; //发送邮件的标题 //将附件附加到邮件消息对象中 objMailMessage.Attachments.Add(objMailAttachment); //正文 objMailMessage.Body = body; // // objMailMessage.IsBodyHtml = true; SmtpClient SmptpMail = new SmtpClient(); //设置发件箱的SMTP服务器 SmptpMail.Host = "smtp.163.com" ; //SMTP使用的端口 SmptpMail.Port = 25; //用户名密码 SmptpMail.Credentials = new NetworkCredential( "198489xx@163.com" , "454646546sdsg" ); SmptpMail.Send(objMailMessage); |