.NET ASP.NET发送邮件
程序员文章站
2022-03-09 10:41:18
...
发送邮件和拼接内容的一个方法
#region 发送邮件
/// <summary>
/// 发送邮件
/// </summary>
/// <param name="subject">邮件标题</param>
/// <param name="body">邮件内容,html格式</param>
/// <param name="shouname">收件人</param>
public void SendMailAsync(string subject, string body, string shouname)
{
MailMessage msg = new MailMessage();//smt类发送邮件
msg.To.Add(shouname);//收件人邮件地址 格式:******@qq.com、******@163.com
msg.BodyEncoding = Encoding.Default;//邮件正文文字编码
msg.SubjectEncoding = Encoding.Default;//邮件标题文字编码
msg.IsBodyHtml = true;
msg.From = new MailAddress("[email protected]");//发件人邮件地址和名称 格式:******@qq.com,"自己名字"(名字可省略)
msg.Subject = subject;//邮件标题
msg.Body = body;//邮件正文
SmtpClient Client = new SmtpClient("smtp.163.com", 25);//创建mail协议(IP地址和端口) //推荐设置25端口号 //smtp.163.com
// [端口怎么设置](http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=371)
//foxmail以前是个独立的邮件平台之后被腾讯收购(你发的邮件和收的邮件在qq邮箱和foxmail是同步的),网站中看完Foxmail设置就可以了下面设置就不用看了
Client.EnableSsl = true;//开启加密连接
Client.Credentials = new NetworkCredential("[email protected]", "XXXXXX");//要发送人的邮箱和授权码,授权码在qq邮箱那边开启stmp后可复制过来,也可以用密码
Client.Send(msg);//发送到smtp服务器等待服务器再发送到收件人邮箱
}
#endregion
#region 邮件内容
/// <summary>
/// 邮件内容
/// </summary>
/// <param name="userName">用户名</param>
/// <param name="urlpwd">找回密码地址</param>
/// <param name="indexer">网站网址</param>
/// <param name="webname">网站名称</param>
/// <returns></returns>
public string AddEmailBody(string userName, string urlpwd, string indexer, string webname)
{
StringBuilder sbBody = new StringBuilder();
sbBody.AppendFormat("<div style=\"text-align:left\">亲爱的会员用户:{0}<br/>",userName);
sbBody.AppendFormat("请点击以下链接完成重置密码(如无法打开请把此链接复制粘贴到浏览器打开):<br/>");
sbBody.AppendFormat("{0}<br/>",urlpwd);
sbBody.AppendFormat("此邮件由<a href='{0}'>{1}</a>自动发送,请勿回复!<br/>", indexer, webname);
sbBody.AppendFormat("若要了解更多信息,请访问我们的官方网站,网址为:{0}<br/></div>", indexer);
sbBody.AppendFormat("<div style=\"text-align:right\">{0}</div>", DateTime.Now.ToString("yyyy年MM月dd日"));
return sbBody.ToString();
}
#endregion