邮件发送在网站应用程序中经常会用到,包括您现在看到的博客,在添加评论后,系统会自动发送邮件通知到我邮箱的,把系统发送邮件的功能整理了下,做了一个客户端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. Django错误大汇总

    1.安装django报错解决方案 找到第一条报错信息: File "c:\users\chenwei\envs\testvir2\lib\site-packages\pip\basecomm ...

  2. NOIP2017 D2T1奶酪

    这题终于是正经第一题感觉了. 只需要对相交或相切的球建一条边,然后对所有与底面有交点的球连边,再对所有与顶面有交点的球连边,bfs判断上下连通性即可. #include<iostream> ...

  3. 线段树--codevs 1690 开关灯

    codevs 1690 开关灯 USACO  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题目描述 Description YYX家门前的街上有N(2& ...

  4. OpenAPI安全防护

    1,开放API可能存在的数据安全问题 (1)数据窃取 通常体现为:钓鱼网站,拦截,伪装,截包 (2)数据篡改 中间被拦截,以代理的方式拦截数据,修改数据 (3)数据泄露 爬虫抓取核心数据 2,解决数据 ...

  5. Codeforces Round #346 (Div. 2) F. Polycarp and Hay 并查集 bfs

    F. Polycarp and Hay 题目连接: http://www.codeforces.com/contest/659/problem/F Description The farmer Pol ...

  6. poj 2828 buy Tickets 用线段树模拟带插入的队列

    Buy Tickets Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2 ...

  7. Codeforces Round #301 (Div. 2) C. Ice Cave BFS

    C. Ice Cave Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/540/problem/C ...

  8. MariaDB 10 (MySQL DB) 多主复制并实现读写分离

    ----本文大纲 简介 资源配置 拓扑图 实现过程 ==================== 一.简介 MMM 即Master-Master Replication Manager for MySQL ...

  9. 典型案例收集-使用OpenVPN连通多个机房内网(iptables+静态路由)

    说明: 1.这个方案是我最初实现的方案,目的在于OpenVPN连通后使其能访问各自的子网,实现互通. 2.主要以iptables为主,这个是关键点,并且这种方式配置iptables十分复杂,最后加入了 ...

  10. uboot启动内核的实现

    前面我们分析了uboot 的整个流程,我们知道uboot启动以后所有功能都是通过命令来实现的,启动kernel就是执行了bootcmd里面的命令.命令执行过程在uboot中是非常重要的现在我们就来看u ...