1、构造附件

        static List<Attachment> BuildAttachments(List<EmailFile> files)
{
if (files == null || files.Count <= ) { return null; } List<Attachment> result = new List<Attachment>();
foreach (var obj in files)
{
try
{
byte[] buffer = Convert.FromBase64String(obj.Body);
System.IO.MemoryStream stream = new System.IO.MemoryStream(buffer, , buffer.Length); result.Add(new Attachment(stream, obj.Filename, obj.Mimetype));
}
catch { }
}
return result;
}

2、构造邮件实例,并发送

        static void SendMail(string from, string tos, string ccs, string subject, string body, List<Attachment> attachments)
{
try
{
string[] fromMails = from.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
string[] toMails = tos.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
string[] ccMails = ccs.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
MailMessage m = new MailMessage();
m.From = new MailAddress(fromMails[].Trim());
foreach (string to in toMails)
{
m.To.Add(to.Trim());
}
foreach (string cc in ccMails)
{
m.CC.Add(cc.Trim());
} m.Subject = subject;
m.Body = body;
m.BodyEncoding = System.Text.UnicodeEncoding.UTF8;
m.IsBodyHtml = true;
if (attachments != null && attachments.Count > )
{
foreach (var obj in attachments) { m.Attachments.Add(obj); }
}
SmtpClient client = new SmtpClient();
client.Host = _configObj.EmailHost;
client.UseDefaultCredentials = true;
if (string.IsNullOrEmpty(_configObj.EmailUser) == false && string.IsNullOrEmpty(_configObj.EmailPwd) == false)
{
client.Credentials = new System.Net.NetworkCredential(_configObj.EmailUser.Trim(), _configObj.EmailPwd.Trim());
}
client.Send(m);
}
catch (Exception ex) { throw ex; }
}

C# 发送邮件实例代码的更多相关文章

  1. phpmailer使用qq邮箱、163邮箱成功发送邮件实例代码

    以前使用qq邮箱.163服务器发送邮件,帐号直接使用密码,现在不行了,得使用授权码,简单记录下 1.首先开通POP3/SMTP服务,qq邮箱——帐号——设置,找到POP3/SMTP点开启,输入短信会有 ...

  2. thinkphp5发送邮件(实例代码 非常适合新手)

    第一步:在(https://pan.baidu.com/s/1Fq6lONHlft5D6jvOnNwtoA)下载 phpmailer.rar 解压 然后把文件放入 vendor目录下 第二步:在 ap ...

  3. C++11 变长模版和完美转发实例代码

    C++11 变长模版和完美转发实例代码 #include <memory>#include <iostream>#include <vector>#include ...

  4. PHP读取超大文件的实例代码

    数据量大带来的问题就是单个文件很大,能够打开这个文件相当不容易,记事本就不要指望了,果断死机   去年年底的各种网站帐号信息的数据库泄漏,很是给力啊,趁机也下载了几个数据库,准备学学数据分析家来分析一 ...

  5. python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息,抓取政府网新闻内容

    python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息PySpider:一个国人编写的强大的网络爬虫系统并带有强大的WebUI,采用Python语言编写 ...

  6. python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例

    python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例 新浪爱彩双色球开奖数据URL:http://zst.aicai.com/ssq/openInfo/ 最终输出结果格 ...

  7. python 发送邮件实例

    留言板回复作者邮件提醒 -----------2016-5-11 15:03:58-- source:python发送邮件实例

  8. junit基础篇、中级篇-实例代码

    学习文章: http://blog.csdn.net/andycpp/article/details/1327147 http://wenku.baidu.com/link?url=C27gDEj0l ...

  9. C#开发中使用Npoi操作excel实例代码

    C#开发中使用Npoi操作excel实例代码 出处:西西整理 作者:西西 日期:2012/11/16 9:35:50 [大 中 小] 评论: 0 | 我要发表看法 Npoi 是什么? 1.整个Exce ...

随机推荐

  1. 关于国际化中的$NON-NLS-1$

    百度百科解释: 这实际与eclipse中支持i18n的一种方式,eclipse的标准结构,将所有string常量定义到·properties中,例如下面程序段中的TestRef.hello实际上是·p ...

  2. HTML5规范的本地存储

    在HTML5 中定义了两种本地存储的,Web Storage 和本地数据库 SQL Database . 用来检查判断浏览器是否支持 Web Storage if(window.localStorag ...

  3. 有关line-height的见解

    line-height:简单的说就是行高,是两行文字之间基线的距离.基线是指在英语的书写的4线3格中,从上往下数的第三条线 1.line-height与行内框盒子模型 所有内联元素的样式表现都与行内框 ...

  4. sQL语言分类 DML、DDL、DCL区别

    总体解释:DML(data manipulation language):       它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据 ...

  5. GetDeviceCaps() 参数

    GetDeviceCaps 检测设备指定信息 参数: #define DRIVERVERSION 0 /* 设备驱动版本 */ #define TECHNOLOGY 2 /* Device class ...

  6. 从V$SQL_PLAN中FORMAT执行计划

    10G版本 select sql_id from v$sqlarea where sql_text like'%xxx%'; select  * from v$sql_plan where sql_i ...

  7. 在有大量数据时 少用In(数据会丢失) 用left join 代替

    select @From, @To, EffectiveDate, GETDATE(), Rate from Config_Currency_ExchangeRate_Temp where Effec ...

  8. ubuntu tab命令补全失效

    主要是由于环境变量设置出了问题,修改/etc/environment即可. sudo nano /etc/environment 修改后source /etc/environment

  9. freemark页面中获取list循环中的counter

    如何在freemark页面中获取到当前list循环的counter 直接上代码 <#list lists as x> <#assign j=x?counter> ${j} // ...

  10. 一种c#深拷贝方式完胜java深拷贝(实现上的对比)

    楼主是一名asp.net攻城狮,最近经常跑java组客串帮忙开发,所以最近对java的一些基础知识特别上心.却遇到需要将一个对象深拷贝出来做其他事情,而原对象保持原有状态的情况.(实在是不想自己new ...