邮件发送在网站应用程序中经常会用到,包括您现在看到的博客,在添加评论后,系统会自动发送邮件通知到我邮箱的,把系统发送邮件的功能整理了下,做了一个客户端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. 解决CentOS7关闭/开启防火墙出现Unit iptables.service failed to load: No such file or directory.

    CentOS7中执行 service iptables start/stop 会报错Failed to start iptables.service: Unit iptables.service fa ...

  2. Spring中@Transactional事务回滚

    转载: Spring中@Transactional事务回滚 一.使用场景举例 在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用.下面举个栗子:比如一个部 ...

  3. 洛谷P1404 平均数 [01分数规划,二分答案]

    题目传送门 平均数 题目描述 给一个长度为n的数列,我们需要找出该数列的一个子串,使得子串平均数最大化,并且子串长度>=m. 输入输出格式 输入格式: N+1行, 第一行两个整数n和m 接下来n ...

  4. 【JAVAWEB学习笔记】26_Linux基础:简介安装、常用命令和JDK、Mysql、Tomcat的安装

    Linux基础 学习目标 1.了解Linux的简介与安装 2.掌握Linux常用的命令 3.掌握Linux系统上JDK.Mysql.Tomcat的安装 一.Linux的简介 1.Linux的概述 Li ...

  5. http request GET 乱码分析

    提交一个GET请求 在浏览器地址栏或搜索框输入地址:http://www.baidu.com/content/衣服?keyword=衬衣 其中的中文会被浏览器进行编码,具体编码情况请参考阮大神:关于U ...

  6. ubuntu 安装qq 及解决安装完搜狗输入法不显示键盘的方法

    安装qq: https://zhuanlan.zhihu.com/p/27549700 解决搜狗输入法不显示的问题: http://blog.csdn.net/crystal_zero/article ...

  7. hdu 1158 dp Employment Planning

    Employment Planning Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u ...

  8. 【刷水-贪心】BZOJ1629-[Usaco2007 Demo]Cow Acrobats

    [题目大意] 有n个头牛,给出体重和力量.每个牛的危险值等于它上面的牛的体重总和减去它的力量值,求所有方案中危险值最大值的最小值. [思路] 贪心.一开始脑补的贪心是体重大的先放下面,体重相同的根据力 ...

  9. 【BZOJ】1042: [HAOI2008]硬币购物

    1042: [HAOI2008]硬币购物 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3307  Solved: 2075[Submit][Stat ...

  10. mpdf与fpdf的使用比较

    php扩展 ---mpdf/fpdf 最近用到pdf扩展,需求是生成合同与简历的pdf,可供下载打印 mpdf 首先接触的是mpdf,从源码可以看出mpdf是基于fpdf与html2fpdf的成果. ...