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 邮件发送的更多相关文章

  1. asp.net 邮件发送类

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  2. 用ASP.NET Core 1.0中实现邮件发送功能-阿里云邮件推送篇

    在上篇中用MailKit实现了Asp.net core 邮件发送功能,但一直未解决阿里云邮件推送问题,提交工单一开始的回复不尽如人意,比如您的网络问题,您的用户名密码不正确等,但继续沟通下阿里云客户还 ...

  3. 用ASP.NET Core 1.0中实现邮件发送功能

    准备将一些项目迁移到 asp.net core 先从封装类库入手,在遇到邮件发送类时发现在 asp.net core 1.0中并示提供SMTP相关类库,于是网上一搜发现了MailKit 好东西一定要试 ...

  4. asp.net 163邮件发送

    <table id="> <tr> <td style="width: 393px"> 收信:<asp:TextBox ID=. ...

  5. ASP.NET Core中使用MialKit实现邮件发送

    # 导包 首先我们需要导入 MailKit NuGet包,NuGet安装包命令在下方拓展介绍中. # 引用命名空间 using MailKit.Net.Smtp; using MimeKit; # 邮 ...

  6. AspNetCore 目前不支持SMTP协议(基于开源组件开发邮件发送,它们分别是MailKit 和 FluentEmail )

    net所有的功能都要重新来一遍,集成众多类库,core任重道远,且发展且努力!! 我们都知道,很多的邮件发送都是基于这个SMTP协议,但现在的.net core对这方面还不太支持,所以我们选择这两个组 ...

  7. ABP框架系列之二十四:(Email-Sending-EF-电子邮件发送)

    Introduction Email sending is a pretty common task for almost every application. ASP.NET Boilerplate ...

  8. .Net Core邮件发送之MailKit

    一 .在.Net Core中MailKit中提供了邮件的基础封装 它支持跨平台,并且支持 IMAP, POP3, SMTP 等协议 Nuget命令: Install-Package MailKit 官 ...

  9. Chilkat----开源站点之VS2010 CKMailMan一个很好的邮件发送开源开发包

    Chilkat 是一个很好的开源站点,有各种开源库. 开发语言主要有Classic ASP •C • C++ • C# • Delphi ActiveX • Delphi DLL • Visual F ...

随机推荐

  1. webkit内核的浏览器为什么removeAttribute('style')会失效?

    做了一些研究,应该算是理清了问题. 首先,我们在这里常说的「属性」(attributes)其实分为两种:内容属性(content attributes)以及 IDL 属性(IDL attributes ...

  2. WPF 实现指定UI控件截图

    using System.Windows.Media.Imaging; using System.IO; private void SaveToImage(FrameworkElement ui, s ...

  3. Python中的strip()函数的用法

    函数:string.strip() Python strip() 方法用于移除字符串头尾指定的字符(默认为空格). 一.函数说明 strip() 语法:str.strip([rm]); 参数说明 rm ...

  4. 【转】volatile关键字。编译器不优化,多线程会改。防止随时变动的

    来自:http://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777432.html 1. 为什么用volatile? C/C++ 中的 vol ...

  5. Excel VBA入门(八)单元格边框

    本文基于以下文件 http://pan.baidu.com/s/1nvJtsu9 (部分)内容预览: 1. 边框样式 Sub cell_format() Dim sht As Worksheet Di ...

  6. Python编程快速上手(七)Unsplash批量下载器

    首发于个人博客:http://rhinoc.top/post/python_7.html 程序描述 V1.0输入关键字搜索图片,模拟页面下拉获取更多图片,页面加载完成后获取图片链接并下载至指定文件夹. ...

  7. 第一个独特字符位置 · first position unique character

    [抄题]: 给出一个字符串.找到字符串中第一个不重复的字符然后返回它的下标.如果不存在这样的字符,返回 -1. 给出字符串 s = "lintcode",返回 0.给出字符串 s ...

  8. 使用mybatis开发Dao的原始方法,实现根据用户id查询一个用户信息 、根据用户名称模糊查询用户信息列表 、添加用户信息等功能

    1.需求 将下边的功能实现Dao: 根据用户id查询一个用户信息 根据用户名称模糊查询用户信息列表 添加用户信息 2. 原始Dao开发方法需要程序员编写Dao接口和Dao实现类 3.User.xml映 ...

  9. velocity在html中换行符转换

    <td colspan="3" class="tdContent2">$!obj.getDealInfo().replaceAll("\r ...

  10. 跟微软保持适当距离--Hessian + .net 实现RPC体系的企业应用

    同在一个产业链园区的XX厂因为5台Window2003服务器收到了律师函并且被迫下了12万$的采购单,虽然100万对XXX厂来数不是大数目,但是总有种被打劫的感觉. 在企业ERP应用中服务层一般都是做 ...