教程: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 , 已測試成功)
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.正文
方法二
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和授權碼,似乎賬號,密碼可以直接用)
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);
