|
今天在項目中需要實現(xiàn)一個發(fā)送郵箱的功能,來實現(xiàn)用戶郵箱激活功能?。?! 之前采用的是個人的郵箱進行測試,一切都是很順利的,后來換成了公司的企業(yè)郵箱,遇到了一點小問題,問題如下: 發(fā)送郵件失敗,原因:命令順序不正確。 服務(wù)器響應(yīng)為:Error: need EHLO and AUTH first !
后來通過百度,找到了原因所在:需要先設(shè)置 EnableSsl和UseDefaultCredentials,再實例化Credentials 發(fā)送企業(yè)郵箱代碼如下: 1 /// <summary> 2 /// 發(fā)送郵箱 3 /// </summary> 4 /// <param name="mail">目的郵件地址</param> 5 /// <param name="Host">激活地址域名</param> 6 /// <param name="UserID">用戶標識ID</param> 7 /// <param name="ActiCode">隨機生成郵箱激活碼</param> 8 public static void SendEmail(string mail, string Host, int? UserID, string ActiCode) 9 {10 //拼接郵箱激活鏈接11 formto = string.Format(formto, Host, UserID, ActiCode);12 MailMessage mailMsg = new MailMessage();13 mailMsg.From = new MailAddress(name);//源郵件地址 ,發(fā)件人14 mailMsg.To.Add(new MailAddress(mail));//目的郵件地址??梢杂卸鄠€收件人.15 mailMsg.Subject = "陳列專家郵箱激活驗證";//發(fā)送郵件的標題 16 mailMsg.Body = "請進行郵箱驗證,來激活你在陳列專家中用來接收相關(guān)信息的郵箱,點擊下面的鏈接激活您的郵箱:<br><a target='_blank' style='color:#0041D3;text-decoration:underline' href='" + formto + "'>請單擊激活</a>";//發(fā)送郵件的內(nèi)容 17 mailMsg.IsBodyHtml = true;//是否支持HTML18 SmtpClient client = new SmtpClient();//smtp.163.com,smtp.qq.com,smtp.exmail.qq.com(qq企業(yè)郵箱smtp)發(fā)件人使用的郵箱的SMTP服務(wù)器。19 client.Host = "smtp.exmail.qq.com";//設(shè)置發(fā)送者郵箱對應(yīng)的smtpserver20 client.EnableSsl = true;21 client.UseDefaultCredentials = false;22 client.Credentials = new System.Net.NetworkCredential(name, upass);//指定發(fā)件人的郵箱的賬號與密碼.23 client.DeliveryMethod = SmtpDeliveryMethod.Network;24 try25 {26 client.Send(mailMsg);//排隊發(fā)送郵件.27 }28 catch (Exception ex)29 {30 throw;31 }32 } 調(diào)用方法:SendEmail(email, Host, AdminUser.UserID, code); 測試效果圖如下:
記一次工作中遇到的問題! |
|
|