MVC 如何实现邮件发送?

我想我是醉了 2014-11-04 05:52:43
各位大侠,请教下如何在MVC中实现邮件发送功能,通过页面input控件中填写的邮件地址实现邮件发送,还请大侠能给个例子,谢谢!
...全文
1254 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhanglong_longlong 2016-09-01
  • 打赏
  • 举报
回复
如果是sql的话,直接数据库装个邮件服务,直接通过插入表的形式进行邮件发送
qq_35913485 2016-09-01
  • 打赏
  • 举报
回复
using System.Net.Mail;//邮件发送需引用 public ActionResult bindStep3(ModelCompany c) { ......... .......... ........... MailAddress MessageFrom = new MailAddress("xxxxx@qq.com"); //发件人邮箱地址 string MessageTo = company.COMPANY_EMAIL; //收件人邮箱地址 string MessageSubject = "激活验证"; //邮件主题 string MessageBody = "请进行邮箱验证来完成您注册的最后一步,点击下面的链接激活您的帐号:<br><a target='_blank' rel='nofollow' style='color: #0041D3; text-decoration: underline' href=''>激活</a>"; //邮件内容 (一般是一个网址链接,生成随机数加验证id参数,点击去网站验证。) if (SendMail(MessageFrom, MessageTo, MessageSubject, MessageBody)) { Response.Write("<script type='text/javascript'>alert('发送邮件失败');</script>"); } else { Response.Write("<script type='text/javascript'>alert('发送邮件失败');</script>"); } TempData["CompanyBind3"] = company; return View("bindStep3"); } public bool SendMail(MailAddress MessageFrom,string MessageTo,string MessageSubject,string MessageBody) //发送验证邮件 { MailMessage message = new MailMessage(); message.To.Add(MessageTo); message.From = MessageFrom; message.Subject = MessageSubject; message.SubjectEncoding = System.Text.Encoding.UTF8; message.Body = MessageBody; message.BodyEncoding = System.Text.Encoding.UTF8; message.IsBodyHtml = true; //是否为html格式 message.Priority = MailPriority.High; //发送邮件的优先等级 SmtpClient sc = new SmtpClient(); sc.EnableSsl = true;//是否SSL加密 sc.Host = "smtp.qq.com"; //指定发送邮件的服务器地址或IP sc.Port = 587; //指定发送邮件端口 sc.Credentials = new System.Net.NetworkCredential("xxxxx@qq.com", "xxxxx"); //指定登录服务器的用户名和密码(注意:这里的密码是开通上面的pop3/smtp服务提供给你的授权密码,不是你的qq密码) try { sc.Send(message); //发送邮件 } catch(Exception e) { Response.Write(e.Message); return false; } return true; }
WST926 2016-08-31
  • 打赏
  • 举报
回复
using System.Net.Mail;//邮件发送需引用 public ActionResult bindStep3(ModelCompany c) { ......... .......... ........... MailAddress MessageFrom = new MailAddress("xxxxx@qq.com"); //发件人邮箱地址 string MessageTo = company.COMPANY_EMAIL; //收件人邮箱地址 string MessageSubject = "激活验证"; //邮件主题 string MessageBody = "请进行邮箱验证来完成您注册的最后一步,点击下面的链接激活您的帐号:<br><a target='_blank' rel='nofollow' style='color: #0041D3; text-decoration: underline' href=''>激活</a>"; //邮件内容 (一般是一个网址链接,生成随机数加验证id参数,点击去网站验证。) if (SendMail(MessageFrom, MessageTo, MessageSubject, MessageBody)) { Response.Write("<script type='text/javascript'>alert('发送邮件失败');</script>"); } else { Response.Write("<script type='text/javascript'>alert('发送邮件失败');</script>"); } TempData["CompanyBind3"] = company; return View("bindStep3"); } public bool SendMail(MailAddress MessageFrom,string MessageTo,string MessageSubject,string MessageBody) //发送验证邮件 { MailMessage message = new MailMessage(); message.To.Add(MessageTo); message.From = MessageFrom; message.Subject = MessageSubject; message.SubjectEncoding = System.Text.Encoding.UTF8; message.Body = MessageBody; message.BodyEncoding = System.Text.Encoding.UTF8; message.IsBodyHtml = true; //是否为html格式 message.Priority = MailPriority.High; //发送邮件的优先等级 SmtpClient sc = new SmtpClient(); sc.EnableSsl = true;//是否SSL加密 sc.Host = "smtp.qq.com"; //指定发送邮件的服务器地址或IP sc.Port = 587; //指定发送邮件端口 sc.Credentials = new System.Net.NetworkCredential("xxxxx@qq.com", "xxxxx"); //指定登录服务器的用户名和密码(注意:这里的密码是开通上面的pop3/smtp服务提供给你的授权密码,不是你的qq密码) try { sc.Send(message); //发送邮件 } catch(Exception e) { Response.Write(e.Message); return false; } return true; }
Lxp2740 2016-08-30
  • 打赏
  • 举报
回复
qq邮箱要注意开启下面的服务:qq会给你个授权码,在下面的代码中详细的讲了在哪用这个授权码 using System.Net.Mail;//邮件发送需引用 public ActionResult bindStep3(ModelCompany c) { ......... .......... ........... MailAddress MessageFrom = new MailAddress("xxxxx@qq.com"); //发件人邮箱地址 string MessageTo = company.COMPANY_EMAIL; //收件人邮箱地址 string MessageSubject = "激活验证"; //邮件主题 string MessageBody = "请进行邮箱验证来完成您注册的最后一步,点击下面的链接激活您的帐号:<br><a target='_blank' rel='nofollow' style='color: #0041D3; text-decoration: underline' href=''>激活</a>"; //邮件内容 (一般是一个网址链接,生成随机数加验证id参数,点击去网站验证。) if (SendMail(MessageFrom, MessageTo, MessageSubject, MessageBody)) { Response.Write("<script type='text/javascript'>alert('发送邮件失败');</script>"); } else { Response.Write("<script type='text/javascript'>alert('发送邮件失败');</script>"); } TempData["CompanyBind3"] = company; return View("bindStep3"); } public bool SendMail(MailAddress MessageFrom,string MessageTo,string MessageSubject,string MessageBody) //发送验证邮件 { MailMessage message = new MailMessage(); message.To.Add(MessageTo); message.From = MessageFrom; message.Subject = MessageSubject; message.SubjectEncoding = System.Text.Encoding.UTF8; message.Body = MessageBody; message.BodyEncoding = System.Text.Encoding.UTF8; message.IsBodyHtml = true; //是否为html格式 message.Priority = MailPriority.High; //发送邮件的优先等级 SmtpClient sc = new SmtpClient(); sc.EnableSsl = true;//是否SSL加密 sc.Host = "smtp.qq.com"; //指定发送邮件的服务器地址或IP sc.Port = 587; //指定发送邮件端口 sc.Credentials = new System.Net.NetworkCredential("xxxxx@qq.com", "xxxxx"); //指定登录服务器的用户名和密码(注意:这里的密码是开通上面的pop3/smtp服务提供给你的授权密码,不是你的qq密码) try { sc.Send(message); //发送邮件 } catch(Exception e) { Response.Write(e.Message); return false; } return true; } 控制器中代码: 1 using System.Net.Mail;//邮件发送需引用 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 } @try { System.Net.Mail.MailAddress from = new System.Net.Mail.MailAddress("www.2cto.com", "ethan"); //填写电子邮件地址,和显示名称   System.Net.Mail.MailAddress to = new System.Net.Mail.MailAddress(www.2cto.com, "jimmy"); //填写邮件的收件人地址和名称   //设置好发送地址,和接收地址,接收地址可以是多个   System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();   mail.From = from;   mail.To.Add(to);   mail.Subject = "主题内容";   mail.Body = "你好";   mail.IsBodyHtml = true;//设置显示htmls   //设置好发送邮件服务地址   System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();   client.Host = "smtp.163.com";   //填写服务器地址相关的用户名和密码信息   client.Credentials = new System.Net.NetworkCredential("www.2cto.com", "******");   //发送邮件 client.Send(mail); } catch { @:<b>发送失败</b> }
不再三重门 2016-08-30
  • 打赏
  • 举报
回复
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Net.Mail; using System.Net; namespace IPandLog { class SendEmail { public bool sendRandomCode(string strEmail, string strRandomCode) { //发送邮箱 string Email = "xxxxx@163.com"; string password = "xxxx"; Encoding Encode = Encoding.UTF8; MailMessage Message = new System.Net.Mail.MailMessage(); Message.From = new MailAddress(Email,"ken公司",Encode); Message.To.Add(new MailAddress(strEmail,"尊敬的用户",Encode)); Message.Subject = "找回密码"; Message.SubjectEncoding = Encode; //CC为抄送,即发给用户的同时,再发送给Email // Message.CC.Add(new MailAddress(Email,"抄送ken")); StringBuilder mailContent = new StringBuilder(); mailContent.Append("尊敬的用户:<br/> "); mailContent.Append(" 您好!你于"); mailContent.Append(DateTime.Now.ToLongTimeString()); mailContent.Append("申请找回密码,请输入下面的6位数随机码到页面的文本框: " + strRandomCode); Message.Body = mailContent.ToString(); Message.BodyEncoding = Encode; Message.IsBodyHtml = true; try { SmtpClient smtp = new SmtpClient("smtp.163.com", 25); smtp.Credentials = new NetworkCredential(Email, password); smtp.DeliveryMethod = SmtpDeliveryMethod.Network; smtp.Send(Message); } catch (Exception e) { return false; } finally { Message.Dispose(); } return true; } } }
花落_1 2016-08-30
  • 打赏
  • 举报
回复
引用 4 楼 diaodiaop 的回复:
发邮件跟mvc有一毛钱关系?
是的,你应该问 NET 或者c# 如何发送邮件
快乐起航2020 2016-08-26
  • 打赏
  • 举报
回复
跟普通的发送不是一样么
zXiaosan 2016-08-26
  • 打赏
  • 举报
回复
引用 6 楼 lw402365015 的回复:
[quote=引用 3 楼 QQ234788028 的回复:]
//用 System.Web.Mail 的写法
MailMessage mail = new MailMessage();
mail.To = txtMailTo.Text; //收件人,多个收件人用 ; 号隔开,很是灵活
mail.Subject = txtSubject.Text; //主题
mail.Body = txtBody.Text;  //内容
mail.BodyFormat = MailFormat.Html;
mail.Priority = MailPriority.Normal;
//显示的发件人
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendemailaddress", "gaosheng@hotmail.com");
//实际发件人
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpaccountname", "hbgx@hotmail.com");
//用户名
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "hbgx");
//密码
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "xgbh");
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //验证级别

SmtpMail.SmtpServer = "smtp.hotmail.com";
SmtpMail.SmtpServer.Insert(0, "smtp.hotmail.com");
SmtpMail.Send(mail);
这样就可以了撒![/quote] 那几个ADD里面的网址填什么
lw402365015 2014-11-05
  • 打赏
  • 举报
回复
引用 3 楼 QQ234788028 的回复:
//用 System.Web.Mail 的写法
MailMessage mail = new MailMessage();
mail.To = txtMailTo.Text; //收件人,多个收件人用 ; 号隔开,很是灵活
mail.Subject = txtSubject.Text; //主题
mail.Body = txtBody.Text;  //内容
mail.BodyFormat = MailFormat.Html;
mail.Priority = MailPriority.Normal;
//显示的发件人
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendemailaddress", "gaosheng@hotmail.com");
//实际发件人
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpaccountname", "hbgx@hotmail.com");
//用户名
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "hbgx");
//密码
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "xgbh");
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //验证级别

SmtpMail.SmtpServer = "smtp.hotmail.com";
SmtpMail.SmtpServer.Insert(0, "smtp.hotmail.com");
SmtpMail.Send(mail);
这样就可以了撒!
忘丿殇 2014-11-05
  • 打赏
  • 举报
回复
引用 4 楼 diaodiaop 的回复:
发邮件跟mvc有一毛钱关系?
我也觉得,有毛线关系?一个是功能,一个是设计模式、框架
by_封爱 2014-11-05
  • 打赏
  • 举报
回复
发邮件跟mvc有一毛钱关系?
QQ234788028 2014-11-05
  • 打赏
  • 举报
回复
//用 System.Web.Mail 的写法
MailMessage mail = new MailMessage();
mail.To = txtMailTo.Text; //收件人,多个收件人用 ; 号隔开,很是灵活
mail.Subject = txtSubject.Text; //主题
mail.Body = txtBody.Text;  //内容
mail.BodyFormat = MailFormat.Html;
mail.Priority = MailPriority.Normal;
//显示的发件人
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendemailaddress", "gaosheng@hotmail.com");
//实际发件人
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpaccountname", "hbgx@hotmail.com");
//用户名
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "hbgx");
//密码
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "xgbh");
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //验证级别

SmtpMail.SmtpServer = "smtp.hotmail.com";
SmtpMail.SmtpServer.Insert(0, "smtp.hotmail.com");
SmtpMail.Send(mail);
moonwrite 2014-11-04
  • 打赏
  • 举报
回复
注册会么~~~ 把注册后的信息改成用邮件发 而不是存数据库 怎么发邮件 搜索一下:c#发送邮件 一堆一堆的

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧