asp.net发送邮件带格式(本demo发送验证码)
public ActionResult Mail(string email, string userName) { try { MailSender mail = new MailSender(); Random r = new Random(); int temp = r.Next(123456, 999999); Session["yzm"] = temp; Session.Timeout = 30; HtmlDocument htmlDocument = new HtmlDocument(); htmlDocument.Load(Server.MapPath("/demo.html")); //*[@id="userName"] //*[@id="yzm"] HtmlNode userName_Node = htmlDocument.DocumentNode.SelectSingleNode("//*[@id='userName']"); HtmlNode yzm = htmlDocument.DocumentNode.SelectSingleNode("//*[@id='yzm']"); userName_Node.InnerHtml = userName; yzm.InnerHtml = temp.ToString(); string content = htmlDocument.DocumentNode.InnerHtml; /// </summary> /// <param name="from">发送人邮件地址</param> /// <param name="fromname">发送人显示名称</param> /// <param name="to">发送给谁(邮件地址)</param> /// <param name="subject">标题</param> /// <param name="body">内容</param> /// <param name="username">邮件登录名</param> /// <param name="password">邮件密码</param> /// <param name="server">邮件服务器</param> /// <param name="fujian">附件</param> /// /// <returns>send ok</returns> string returnValue = mail.SendMail( "admin@haoidea.wang", "X6系统管理员", email, "X6系统 帐号找回密码", content, "admin@haoidea.wang", "haoidea2016..", "smtp.ym.163.com", ""); if (returnValue == "ok") { return Content(JsonConvert.SerializeObject(new { Code = 1, Status = "success" }), "application/json"); } else { return Content(JsonConvert.SerializeObject(new { Code = 0, Status = "fail" }), "application/json"); } } catch (Exception e) { return Content(JsonConvert.SerializeObject(new { Code = 0, Status = e.Message }), "application/json"); } }
using System; using System.Text; using System.Xml; using System.Configuration; using System.Web; using System.IO; using System.Net; using System.Net.Mail; namespace DotNet.Utilities { public class MailSender { /// <summary> /// 发送邮件程序 /// </summary> /// <param name="from">发送人邮件地址</param> /// <param name="fromname">发送人显示名称</param> /// <param name="to">发送给谁(邮件地址)</param> /// <param name="subject">标题</param> /// <param name="body">内容</param> /// <param name="username">邮件登录名</param> /// <param name="password">邮件密码</param> /// <param name="server">邮件服务器</param> /// <param name="fujian">附件</param> /// <returns>send ok</returns> /// 调用方法 SendMail("abc@126.com", "某某人", "cba@126.com", "你好", "我测试下邮件", "邮箱登录名", "邮箱密码", "smtp.126.com", ""); public string SendMail(string from, string fromname, string to, string subject, string body, string username, string password, string server, string fujian) { try { //邮件发送类 MailMessage mail = new MailMessage(); //是谁发送的邮件 mail.From = new MailAddress(from, fromname); //发送给谁 mail.To.Add(to); //标题 mail.Subject = subject; //内容编码 mail.BodyEncoding = Encoding.Default; //发送优先级 mail.Priority = MailPriority.High; //邮件内容 mail.Body = body; //是否HTML形式发送 mail.IsBodyHtml = true; //附件 if (fujian.Length > 0) { mail.Attachments.Add(new Attachment(fujian)); } //邮件服务器和端口 SmtpClient smtp = new SmtpClient(server, 25); smtp.UseDefaultCredentials = true; //指定发送方式 smtp.DeliveryMethod = SmtpDeliveryMethod.Network; //指定登录名和密码 smtp.Credentials = new System.Net.NetworkCredential(username, password); //超时时间 smtp.Timeout = 10000; smtp.Send(mail); return "ok"; } catch (Exception exp) { return exp.Message; } } } }
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <meta charset="utf-8" /> </head> <body> <div class="qmbox qm_con_body_content qqmail_webmail_only" id="mailContentContainer" style=""> <style type="text/css"> .qmbox body { margin: 0; padding: 0; background: #fff; font-family: "Verdana, Arial, Helvetica, sans-serif"; font-size: 14px; line-height: 24px; } .qmbox div, .qmbox p, .qmbox span, .qmbox img { margin: 0; padding: 0; } .qmbox img { border: none; } .qmbox .contaner { margin: 0 auto; } .qmbox .title { margin: 0 auto; background: url() #CCC repeat-x; height: 30px; text-align: center; font-weight: bold; padding-top: 12px; font-size: 16px; } .qmbox .content { margin: 4px; } .qmbox .biaoti { padding: 6px; color: #000; } .qmbox .xtop, .qmbox .xbottom { display: block; font-size: 1px; } .qmbox .xb1, .qmbox .xb2, .qmbox .xb3, .qmbox .xb4 { display: block; overflow: hidden; } .qmbox .xb1, .qmbox .xb2, .qmbox .xb3 { height: 1px; } .qmbox .xb2, .qmbox .xb3, .qmbox .xb4 { border-left: 1px solid #BCBCBC; border-right: 1px solid #BCBCBC; } .qmbox .xb1 { margin: 0 5px; background: #BCBCBC; } .qmbox .xb2 { margin: 0 3px; border-width: 0 2px; } .qmbox .xb3 { margin: 0 2px; } .qmbox .xb4 { height: 2px; margin: 0 1px; } .qmbox .xboxcontent { display: block; border: 0 solid #BCBCBC; border-width: 0 1px; } .qmbox .line { margin-top: 6px; border-top: 1px dashed #B9B9B9; padding: 4px; } .qmbox .neirong { padding: 6px; color: #666666; } .qmbox .foot { padding: 6px; color: #777; } .qmbox .font_darkblue { color: #006699; font-weight: bold; } .qmbox .font_lightblue { color: #008BD1; font-weight: bold; } .qmbox .font_gray { color: #888; font-size: 12px; } </style> <div class="contaner"> <div class="title">[X6] 密码重置</div> <div class="content"> <p class="biaoti"><b>亲爱的用户,你好!</b></p> <b class="xtop"><b class="xb1"></b><b class="xb2"></b><b class="xb3"></b><b class="xb4"></b></b> <div class="xboxcontent"> <div class="neirong"> <p><b>请核对你的用户名:</b><span id="userName" class="font_darkblue">gaocongdehao</span></p> <p><b>重置密码的验证码:</b><span class="font_lightblue"><span id="yzm" data="450794" onclick="return false;" t="7" style="border-bottom: 1px dashed rgb(204, 204, 204); z-index: 1; position: static;">450794</span></span><br><span class="font_gray">(请输入该验证码完成密码找回,验证码30分钟内有效!)</span></p> <div class="line">如果你未申请重置密码服务,请忽略该邮件。</div> </div> </div> <b class="xbottom"><b class="xb4"></b><b class="xb3"></b><b class="xb2"></b><b class="xb1"></b></b> <p class="foot">如果仍有问题,请拨打我们的会员服务专线: <span data="800-820-5100" onclick="return false;" t="7" style="border-bottom: 1px dashed rgb(204, 204, 204); z-index: 1; position: static;">021-51875288 </span></p> </div> </div> <style type="text/css"> .qmbox style, .qmbox script, .qmbox head, .qmbox link, .qmbox meta { display: none !important; } </style> </div> </body> </html>
依赖:
HtmlAgilityPack
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人