asp.net发送邮件带格式(本demo发送验证码)
public ActionResult Mail(string email, string userName)
{
try
{
MailSender mail = new MailSender();
Random r = new Random();
int temp = r.Next(, );
Session["yzm"] = temp;
Session.Timeout = ;
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 = ,
Status = "success"
}), "application/json");
}
else
{
return Content(JsonConvert.SerializeObject(new
{
Code = ,
Status = "fail"
}), "application/json");
}
}
catch (Exception e)
{ return Content(JsonConvert.SerializeObject(new
{
Code = ,
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 > )
{ mail.Attachments.Add(new Attachment(fujian)); } //邮件服务器和端口 SmtpClient smtp = new SmtpClient(server, ); smtp.UseDefaultCredentials = true; //指定发送方式 smtp.DeliveryMethod = SmtpDeliveryMethod.Network; //指定登录名和密码 smtp.Credentials = new System.Net.NetworkCredential(username, password); //超时时间 smtp.Timeout = ; 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
asp.net发送邮件带格式(本demo发送验证码)的更多相关文章
- Python使用SMTP发送邮件[HTML格式、送带附件]
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. python的smtplib提供了一 ...
- 解决asp.net core 日期格式 datetime Json返回 带T的问题
原文:解决asp.net core 日期格式 datetime Json返回 带T的问题 记录一下: Startup中,将 services.AddMvc(); 改为: services.AddMvc ...
- ASP和ASP.NET发送邮件笔记
这两天因公司网站邮件发不出去,然后研究了在asp网站发送邮件和在asp.net网站发送邮件的代码,把碰到的问题这里记录一下. 1.先说在asp.net中发送邮件吧, 刚开始只有126邮箱可以发出邮件, ...
- 【转】【Asp.Net】Asp.net发送邮件的两种方法小结
这几天看了一下Asp.net发送邮件方面的东西,记得之前的IIS6上有SMTP服务器,可以直接利用这个进行邮件发送,现在的开发环境是Windows 7,找了半天没有找到,到网络上查了才知道原来wind ...
- java带图片的邮件发送方法实现
package sendEmail; import java.util.Properties; import javax.activation.DataHandler; import javax.ac ...
- asp.net 发送邮件
asp.net 发送邮件 System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage(); msg.To. ...
- asp.net 客户邮件群发功能 SendMail 发送静态化html
背景:现在几乎每个企业都要用到邮箱,而在大客户量情况下,为我们的不同等级的客户送上节日关怀,以及把我们的喜讯.新品通知到他们是我们急需解决的问题.效果如图 思路: 1.静态化网页模版,首先考虑需要发送 ...
- asp.net C# 时间格式大全
asp.net C# 时间格式大全DateTime dt = DateTime.Now;// Label1.Text = dt.ToString();//2005-11-5 13:21:25// ...
- MFC带参数启动指令发送与接收
MFC带参数启动指令发送与接收 发送 使用ShellExecute函数打开文件或执行程序. 函数原型: HINSTANCE ShellExecute( _In_opt_ HWND hwnd,//父窗口 ...
随机推荐
- 转:java中数组与List相互转换的方法
1.List转换成为数组.(这里的List是实体是ArrayList) 调用ArrayList的toArray方法. toArray public <T> T[] toArray(T[] ...
- ARM 指令集版本和ARM 版本z
a9是cortex-a9的简称,属于v7指令集,属于目前比较新的了.arm9就是arm9,属于v5指令集,arm9后面的是arm11,属于v6指令集,之前的是arm7,属于v4指令集.虽然他们之间差别 ...
- Markdown 语法背一下咯
标题 使用`=`和`-`标记一级和二级标题. # 一级标题 ## 二级标题 使用`#`,可表示1-6级标题. # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标 ...
- es6 对象简化写法-函数
表达式还可以用于定义方法名. let obj = { ['h' + 'ello']() { return 'hi'; } }; obj.hello() // hi
- 从cocos2dx到cocos2dhtml5的不同之处
首先cocos2dhtml5使用javascript编程, 严格区分大写和小写. 1.新建cocos2dhtml5项目. 直接复制引擎自带的helloworld.改一下目录名字就可以. 2.新增js文 ...
- ISP封了80和8080端口
今天用自己的电脑做服务器,绑定了域名,路由映射什么的都做了,但是80和8080端口在外网怎么都访问不了,只在内网可以访问. 最后看有人说联通封了80和8080端口,真是遗憾,谨记于此,以后有时间了再来 ...
- Oracle中sign/decode/nvl/round/trunc/(+)/instr/substr/replace解释
1. sign函数 sign函数语法: sign(n); sign函数说明: 取数字n的符号,大于0返回1,小于0返回-1,等于0返回0(n可以是表达式,(n-200)) 例子: a=10; b=50 ...
- join和countDownLatch原理及区别详解
先上结论 原理 join 原理:在当前线程中调用另一个线程线程 thread 的 join() 方法时,会调用该 thread 的 wait() 方法,直到这个 thread 执行完毕(JVM在 ru ...
- 关于wcf,webservice,webapi或者其他服务或者接口有什么区别 WCF、WebAPI、WebService之间的区别 【转载】HTTP和SOAP完全就是两个不同的协议 WebService学习总结(一)——WebService的相关概念
wcf,webservice采用的是rpc协议,这个协议很复杂,所以每次要传递.要校验的内容也很复杂,别看我们用的很简单,但实际是frame帮我们做掉了rpc生成.解析的事情webapi遵循是rest ...
- 在Win7中IIS配置Asp.Net虚拟文件夹的方法及错误总结!
在Win7中IIS配置Asp.Net虚拟文件夹的方法总结! 一.右键[站点].点击[加入虚拟文件夹]或[虚拟应用程序],笔者建议最好建立虚拟应用程序,由于这就跟一个站点差点儿相同.不用考虑路径问题. ...