ASP.NET 邮件发送
ASP.NET 邮件发送用NET的MAIL类即可实现。
邮件发时,为不影响进程,所以采用多线程实现比较好。
/// <summary>
/// 多线程邮件发送 多线程需注意不要引用到外部方法代码
/// </summary>
/// <param name="model">参数集</param>
/// <param name="toemail">收件人邮箱</param>
/// <param name="title">邮件标题</param>
/// <param name="content">邮件内容</param>
public void SendEmail(Dictionary<string, object> obj, string toEmail, string toTitle, string toBody)
{
obj.Add("toEmail", toEmail); //收件人
obj.Add("toTitle", toTitle); //邮件标题
obj.Add("toBody", toBody); //邮件内容 Thread tr = new Thread(new ParameterizedThreadStart(SendEmail));
tr.Start(obj);
} /// <summary>
/// 单条邮件发送
/// </summary>
/// <returns></returns>
private void SendEmail(object p)
{
Dictionary<string, object> dic = p as Dictionary<string, object>; MailAddress from = new MailAddress(dic["SmtpEmail"].ToString()); //SMTP邮箱账户
MailAddress to = new MailAddress(dic["toEmail"].ToString()); //收件人邮箱
MailMessage message = new MailMessage(from, to);
message.IsBodyHtml = true;
message.Subject = dic["toTitle"].ToString(); //邮件标题
message.Body = dic["toBody"].ToString(); //邮件内容
SmtpClient client = new SmtpClient(dic["SmtpService"].ToString()); //SMTP地址
client.EnableSsl = Convert.ToBoolean(dic["SmtpSSL"]); //是否启用SSL
client.Port = Convert.ToInt32(dic["SmtpPort"]); //SMTP端口
client.Credentials = new NetworkCredential(dic["SmtpAccount"].ToString(), dic["SmtpPwd"].ToString()); //邮箱账户 密码
ServicePointManager.ServerCertificateValidationCallback =
delegate(Object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { return true; };
client.Send(message);
}
邮件发送说明:
1、邮件发送不成功时,查看服务器日志,可找到错误原因。
Gmail错误:SMTP服务器需要安全连接或客户端未通过身份验证。服务器响应是:5.5.1需要验证
Gmail The SMTP server 5.5.1 Authentication Required
邮件安全性没开启,https://myaccount.google.com/security#connectedapps
访问上面地址,有个开关,开启即可。
2、发送HTML页面代码,将邮件内容填写为HTML源代码即可,注意CSS代码写页面里面,引用外部文件需要注意绝对路径。
ASP.NET 邮件发送的更多相关文章
- asp.net 邮件发送类
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- 用ASP.NET Core 1.0中实现邮件发送功能-阿里云邮件推送篇
在上篇中用MailKit实现了Asp.net core 邮件发送功能,但一直未解决阿里云邮件推送问题,提交工单一开始的回复不尽如人意,比如您的网络问题,您的用户名密码不正确等,但继续沟通下阿里云客户还 ...
- 用ASP.NET Core 1.0中实现邮件发送功能
准备将一些项目迁移到 asp.net core 先从封装类库入手,在遇到邮件发送类时发现在 asp.net core 1.0中并示提供SMTP相关类库,于是网上一搜发现了MailKit 好东西一定要试 ...
- asp.net 163邮件发送
<table id="> <tr> <td style="width: 393px"> 收信:<asp:TextBox ID=. ...
- ASP.NET Core中使用MialKit实现邮件发送
# 导包 首先我们需要导入 MailKit NuGet包,NuGet安装包命令在下方拓展介绍中. # 引用命名空间 using MailKit.Net.Smtp; using MimeKit; # 邮 ...
- AspNetCore 目前不支持SMTP协议(基于开源组件开发邮件发送,它们分别是MailKit 和 FluentEmail )
net所有的功能都要重新来一遍,集成众多类库,core任重道远,且发展且努力!! 我们都知道,很多的邮件发送都是基于这个SMTP协议,但现在的.net core对这方面还不太支持,所以我们选择这两个组 ...
- ABP框架系列之二十四:(Email-Sending-EF-电子邮件发送)
Introduction Email sending is a pretty common task for almost every application. ASP.NET Boilerplate ...
- .Net Core邮件发送之MailKit
一 .在.Net Core中MailKit中提供了邮件的基础封装 它支持跨平台,并且支持 IMAP, POP3, SMTP 等协议 Nuget命令: Install-Package MailKit 官 ...
- Chilkat----开源站点之VS2010 CKMailMan一个很好的邮件发送开源开发包
Chilkat 是一个很好的开源站点,有各种开源库. 开发语言主要有Classic ASP •C • C++ • C# • Delphi ActiveX • Delphi DLL • Visual F ...
随机推荐
- Keras 入门
“sample”“batch”“epoch” Sample:样本,比如:一张图像是一个样本,一段音频也是一个样本. Batch:批,含有N个样本的集合.每一个batch的样本都是独立的并行处理.在训练 ...
- 自己动手实现RPC服务调用框架
转自:http://www.cnblogs.com/rjzheng/p/8971629.html#3977269 担心后面忘了,先转了,后面借鉴实现一下RPC -------------------- ...
- Vue项目中将table组件导出Excel表格以及打印页面内容
体验更优排版请移步原文:http://blog.kwin.wang/programming/vue-table-export-excel-and-print.html 页面中显示的table表格,经常 ...
- 获取当前函数名 __FUNCTION__ 的使用<转>
vs项目中见过这种获取 当前函数名的调用.觉得挺方便的就记录一下. ============================================================== 转载地 ...
- UNITY C#内存泄漏
http://www.360doc.com/content/15/0717/09/10504424_485422031.shtml
- C#委托(匿名函数)的各种变形写法
static void TestDelegate() { //类C++11风格:指定初始化容量20,使用初始化列表给部分成员赋值 ) { , , , , -, , }; ; i < lst. ...
- 一个简单的MVVM雏形
这是@尚春实现的MVVM,使用定时器轮询,只支持{{}}与input.value的修改. 这只能算是一个玩具,真正的MVVM需要有更复杂的扫描机制,JS解析器,双向绑定链什么的. <!DOCTY ...
- 迷你MVVM框架 avalonjs 0.84发布
本版本只要做了如下改进 重构ui绑定 fix scanTag bug ms-include 的值必须不为空值,否则不做任何操作.
- 在spring中使用quartz配置作业的二种方式
- rook issues
ceph-volumeattacher: failed rbd single_major check, assuming it's unsupported: failed to check for r ...