asp.net mvc发送邮件
参考文献:
第一篇:http://www.cnblogs.com/qinpengming/archive/2011/06/08/2075040.html
第二篇:http://www.cnblogs.com/XuebinDing/archive/2012/03/27/2419497.html
第三篇:http://jingyan.baidu.com/article/0f5fb099dffe7c6d8334ea31.html (qq邮箱开启smtp服务的步骤)
第四篇:http://bbs.csdn.net/topics/370021675
QQ邮箱 POP3 和 SMTP 服务器地址设置如下:邮箱POP3服务器(端口110)SMTP服务器(端口25)qq.compop.qq.comsmtp.qq.comSMTP服务器需要身份验证。
如果是设置POP3和SMTP的SSL加密方式,则端口如下:
POP3服务器(端口995)
SMTP服务器(端口465或587)。
qq邮箱要注意开启下面的服务:qq会给你个授权码,在下面的代码中详细的讲了在哪用这个授权码。
控制器中代码:
1 using System.Net.Mail;//邮件发送需引用
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 public ActionResult bindStep3(ModelCompany c) 2 { 3 ......... 4 .......... 5 ........... 6 MailAddress MessageFrom = new MailAddress("xxxxx@qq.com"); //发件人邮箱地址 7 string MessageTo = company.COMPANY_EMAIL; //收件人邮箱地址 8 string MessageSubject = "激活验证"; //邮件主题 9 string MessageBody = "请进行邮箱验证来完成您注册的最后一步,点击下面的链接激活您的帐号:<br><a target='_blank' rel='nofollow' style='color: #0041D3; text-decoration: underline' href=''>激活</a>"; //邮件内容 (一般是一个网址链接,生成随机数加验证id参数,点击去网站验证。) 10 11 if (SendMail(MessageFrom, MessageTo, MessageSubject, MessageBody)) 12 { 13 Response.Write("<script type='text/javascript'>alert('发送邮件失败');</script>"); 14 } 15 else 16 { 17 Response.Write("<script type='text/javascript'>alert('发送邮件失败');</script>"); 18 } 19 TempData["CompanyBind3"] = company; 20 return View("bindStep3"); 21 } 22 23 public bool SendMail(MailAddress MessageFrom,string MessageTo,string MessageSubject,string MessageBody) //发送验证邮件 24 { 25 MailMessage message = new MailMessage(); 26 message.To.Add(MessageTo); 27 message.From = MessageFrom; 28 message.Subject = MessageSubject; 29 message.SubjectEncoding = System.Text.Encoding.UTF8; 30 message.Body = MessageBody; 31 message.BodyEncoding = System.Text.Encoding.UTF8; 32 message.IsBodyHtml = true; //是否为html格式 33 message.Priority = MailPriority.High; //发送邮件的优先等级 34 SmtpClient sc = new SmtpClient(); 35 sc.EnableSsl = true;//是否SSL加密 36 sc.Host = "smtp.qq.com"; //指定发送邮件的服务器地址或IP 37 sc.Port = 587; //指定发送邮件端口 38 sc.Credentials = new System.Net.NetworkCredential("xxxxx@qq.com", "xxxxx"); //指定登录服务器的用户名和密码(注意:这里的密码是开通上面的pop3/smtp服务提供给你的授权密码,不是你的qq密码) 39 40 try 41 { 42 sc.Send(message); //发送邮件 43 } 44 catch(Exception e) 45 { 46 Response.Write(e.Message); 47 return false; 48 } 49 return true; 50 51 }
实现效果: