今天在項(xiàng)目中需要實(shí)現(xiàn)一個(gè)發(fā)送郵箱的功能,來(lái)實(shí)現(xiàn)用戶郵箱激活功能?。?! 之前采用的是個(gè)人的郵箱進(jìn)行測(cè)試,一切都是很順利的,后來(lái)?yè)Q成了公司的企業(yè)郵箱,遇到了一點(diǎn)小問(wèn)題,問(wèn)題如下: 發(fā)送郵件失敗,原因:命令順序不正確。 服務(wù)器響應(yīng)為:Error: need EHLO and AUTH first ! 后來(lái)通過(guò)百度,找到了原因所在:需要先設(shè)置 EnableSsl和UseDefaultCredentials,再實(shí)例化Credentials 發(fā)送企業(yè)郵箱代碼如下: 1 /// <summary> 2 /// 發(fā)送郵箱 3 /// </summary> 4 /// <param name="mail">目的郵件地址</param> 5 /// <param name="Host">激活地址域名</param> 6 /// <param name="UserID">用戶標(biāo)識(shí)ID</param> 7 /// <param name="ActiCode">隨機(jī)生成郵箱激活碼</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));//目的郵件地址。可以有多個(gè)收件人.15 mailMsg.Subject = "陳列專家郵箱激活驗(yàn)證";//發(fā)送郵件的標(biāo)題 16 mailMsg.Body = "請(qǐng)進(jìn)行郵箱驗(yàn)證,來(lái)激活你在陳列專家中用來(lái)接收相關(guān)信息的郵箱,點(diǎn)擊下面的鏈接激活您的郵箱:<br><a target='_blank' style='color:#0041D3;text-decoration:underline' href='" + formto + "'>請(qǐng)單擊激活</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ā)送者郵箱對(duì)應(yīng)的smtpserver20 client.EnableSsl = true;21 client.UseDefaultCredentials = false;22 client.Credentials = new System.Net.NetworkCredential(name, upass);//指定發(fā)件人的郵箱的賬號(hào)與密碼.23 client.DeliveryMethod = SmtpDeliveryMethod.Network;24 try25 {26 client.Send(mailMsg);//排隊(duì)發(fā)送郵件.27 }28 catch (Exception ex)29 {30 throw;31 }32 } 調(diào)用方法:SendEmail(email, Host, AdminUser.UserID, code); 測(cè)試效果圖如下: 記一次工作中遇到的問(wèn)題! |
|