邮件发送在网站应用程序中经常会用到,包括您现在看到的博客,在添加评论后,系统会自动发送邮件通知到我邮箱的,把系统发送邮件的功能整理了下,做了一个客户端Demo,希望对有需要的童鞋有所帮助:

核心代码:

001 using System;
002 using System.Net;
003 using System.Net.Mail;
004 using System.Text;
005  
006 namespace HC.Email
007 {
008     /// <summary>
009     ///     整站邮件服务类
010     /// </summary>
011     public class EmailService
012     {
013         /// <summary>
014         ///     发送邮件
015         /// </summary>
016         /// <param name="mailTo">收件人
017         /// <param name="subject">主题
018         /// <param name="body">内容
019         /// <returns></returns>
020         public static bool Send(string mailTo, string subject, string body)
021         {
022             return Send(new[] {mailTo}, null, subject, body, truenull);
023         }
024  
025         /// <summary>
026         ///     发送邮件
027         /// </summary>
028         /// <param name="mailTo">收件人
029         /// <param name="subject">主题
030         /// <param name="body">内容
031         /// <returns></returns>
032         public static bool Send(string[] mailTo, string subject, string body)
033         {
034             return Send(mailTo, null, subject, body, truenull);
035         }
036  
037         /// <summary>
038         ///     发送邮件
039         /// </summary>
040         /// <param name="mailTo">收件人
041         /// <param name="subject">主题
042         /// <param name="body">内容
043         /// <param name="attachmentsPath">附件
044         /// <returns></returns>
045         public static bool Send(string[] mailTo, string subject, string body, string[] attachmentsPath)
046         {
047             return Send(mailTo, null, subject, body, true, attachmentsPath);
048         }
049  
050  
051         /// <summary>
052         ///     发送邮件
053         /// </summary>
054         /// <param name="mailTo">收件人
055         /// <param name="mailCcArray">抄送
056         /// <param name="subject">主题
057         /// <param name="body">内容
058         /// <param name="isBodyHtml">是否Html
059         /// <param name="attachmentsPath">附件
060         /// <returns></returns>
061         public static bool Send(string[] mailTo, string[] mailCcArray, string subject,string body, bool isBodyHtml,
062                                 string[] attachmentsPath)
063         {
064             try
065             {
066                 var config = ConfigHelper.GetConfig<emailconfig>();
067                 if (string.IsNullOrEmpty(config.Host) ||string.IsNullOrEmpty(config.UserName) ||
068                     string.IsNullOrEmpty(config.Port) ||string.IsNullOrEmpty(config.Password))
069                 {
070                     //todo:记录日志
071                     return false;
072                 }
073                 var @from = new MailAddress(config.MailFrom); //使用指定的邮件地址初始化MailAddress实例
074                 var message = new MailMessage(); //初始化MailMessage实例
075                 //向收件人地址集合添加邮件地址
076                 if (mailTo != null)
077                 {
078                     foreach (string in mailTo)
079                     {
080                         message.To.Add(t);
081                     }
082                 }
083  
084                 //向抄送收件人地址集合添加邮件地址
085                 if (mailCcArray != null)
086                 {
087                     foreach (string in mailCcArray)
088                     {
089                         message.CC.Add(t);
090                     }
091                 }
092                 //发件人地址
093                 message.From = @from;
094  
095                 //电子邮件的标题
096                 message.Subject = subject;
097  
098                 //电子邮件的主题内容使用的编码
099                 message.SubjectEncoding = Encoding.UTF8;
100  
101                 //电子邮件正文
102                 message.Body = body;
103  
104                 //电子邮件正文的编码
105                 message.BodyEncoding = Encoding.Default;
106                 message.Priority = MailPriority.High;
107                 message.IsBodyHtml = isBodyHtml;
108  
109                 //在有附件的情况下添加附件
110                 if (attachmentsPath != null && attachmentsPath.Length > 0)
111                 {
112                     foreach (string path in attachmentsPath)
113                     {
114                         var attachFile = new Attachment(path);
115                         message.Attachments.Add(attachFile);
116                     }
117                 }
118                 try
119                 {
120                     var smtp = new SmtpClient
121                         {
122                             Credentials = new NetworkCredential(config.UserName, config.Password),
123                             Host = config.Host,
124                             Port = Convert.ToInt32(config.Port)
125                         };
126  
127                     //将邮件发送到SMTP邮件服务器
128                     smtp.Send(message);
129                     //todo:记录日志
130                     return true;
131                 }
132                 catch (SmtpException ex)
133                 {
134                     //todo:记录日志
135                     return false;
136                 }
137             }
138             catch (SmtpException ex)
139             {
140                 //todo:记录日志
141                 return false;
142             }
143         }
144     }
145 }

源代码下载

C# SMTP邮件发送程序的更多相关文章

  1. python学习笔记(SMTP邮件发送:带附件)

    博主有段时间没有更新博客了 先整理一个之前整理过的SMTP邮件发送,这次是带附件的功能 #!/usr/bin/env python # -*- coding: utf_8 -*- from email ...

  2. pyqt5实现SMTP邮件发送

    # -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'SMTP.ui' # # Created b ...

  3. python学习笔记(SMTP邮件发送)

    想着给框架添加邮件发送功能.所以整理下python下邮件发送功能 首先python是支持邮件的发送.内置smtp库.支持发送纯文本.HTML及添加附件的邮件 之后是邮箱.像163.qq.新浪等邮箱默认 ...

  4. python SMTP邮件发送(转载)

    Python SMTP发送邮件 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. py ...

  5. C# SMTP邮件发送 分类: C# 2014-07-13 19:10 334人阅读 评论(1) 收藏

    邮件发送在网站应用程序中经常会用到,包括您现在看到的博客,在添加评论后,系统会自动发送邮件通知到我邮箱的,把系统发送邮件的功能整理了下,做了一个客户端Demo,希望对有需要的童鞋有所帮助: 核心代码: ...

  6. C# SMTP邮件发送 分类: C# 2014-07-13 19:10 333人阅读 评论(1) 收藏

    邮件发送在网站应用程序中经常会用到,包括您现在看到的博客,在添加评论后,系统会自动发送邮件通知到我邮箱的,把系统发送邮件的功能整理了下,做了一个客户端Demo,希望对有需要的童鞋有所帮助: 核心代码: ...

  7. java实现smtp邮件发送

    一.准备工作 首先你需要已一个发送邮箱,一般的邮箱都有SMTP.POP3服务,比如QQ邮箱,登陆QQ邮箱开启SMTP服务,开启是服务器会提示你设置独立密码,这个密码是跟邮箱正常登陆的密码不同的,这个是 ...

  8. PL/SQL 下邮件发送程序

    对DBA而言,尽管在os级别下发送邮件是轻而易举的事情,然而很多时候我们也需要在PL/SQL中来发送邮件,比如监控job的执行状况等.本文根据网友(源作者未考证)的代码将其改装并封装到了package ...

  9. Python SMTP邮件发送

    SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件.HTML邮件以及带附件的邮件. Python对SMTP支持有smtplib和email两个模块: email负责构造邮件 ...

随机推荐

  1. 使用 JQuery 实现将 table 按照列排序

    使用 JQuery 实现将 table 按照列排序 使用 JQuery 实现将 table 按照列排序 代码如下 <!DOCTYPE html> <html> <head ...

  2. 转:gcc编译C++程序

    转:http://blog.csdn.net/liujiayu2/article/details/49864381 单个源文件生成可执行程序 下面是一个保存在文件 helloworld.cpp 中一个 ...

  3. (10) go 错误

    没有 try catch..f.. 自定义错误

  4. 洛谷P2231 [HNOI2002]跳蚤 [数论,容斥原理]

    题目传送门 跳蚤 题目描述 Z城市居住着很多只跳蚤.在Z城市周六生活频道有一个娱乐节目.一只跳蚤将被请上一个高空钢丝的正中央.钢丝很长,可以看作是无限长.节目主持人会给该跳蚤发一张卡片.卡片上写有N+ ...

  5. Eclipse酷炫项目、最新趋势介绍

    作为Eclipse基金组织的执行董事,我需要经常审阅每一个新提交的Eclipse项目协议书.作为Eclipse的一分子,我很乐意与加入我们团队的新开发人员互动.这也是我工作中的乐趣之一.2013年,我 ...

  6. BZOJ2754 SCOI2012喵星球上的点名

    绝世好题. 正当我犹豫不决时,hzwer说:“MAP!!!” 没错这题大大的暴力,生猛的stl,贼基尔爽,,ԾㅂԾ,, 由于我们求点名在名字中的子串个数,所以将点名建AC自动机,记录节点属于哪次点名, ...

  7. 「NOI2017」游戏

    「NOI2017」游戏 题目描述 小 L 计划进行 \(n\) 场游戏,每场游戏使用一张地图,小 L 会选择一辆车在该地图上完成游戏. 小 L 的赛车有三辆,分别用大写字母 \(A\).\(B\).\ ...

  8. 51nod1821 最优集合 贪心

    首先考虑一个集合的最大优美值怎么求出 考虑新增一个数,假设我们现在的优美值已经达到了$V$,那么只需要一个$[1, V + 1]$的数就可以使$V$达到更大 为了保证能添加尽可能多的数进来,我们这么构 ...

  9. [BZOJ4873][六省联考2017]寿司餐厅(最大权闭合子图)

    4873: [Shoi2017]寿司餐厅 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 490  Solved: 350[Submit][Status ...

  10. 卡特兰数 codevs 1086 栈

    1086 栈 2003年NOIP全国联赛普及组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description ...