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

    NVM(Node version manager)顾名思义,就是Node.js的版本管理软件,可以轻松的在Node.js各个版本间切换,项目源码GitHub 1.下载并安装NVM脚本 curl htt ...

  2. fastadmin iframe 表单提交之后跳转

    controller 对应的那个js文件中添加: define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function($, und ...

  3. (转) redis的事务和watch

    redis的事务 严格意义来讲,redis的事务和我们理解的传统数据库(如mysql)的事务是不一样的. redis中的事务定义 Redis中的事务(transaction)是一组命令的集合. 事务同 ...

  4. 由字符串反转(使用递归)引申出来一道Java面试题

    如何面试一个从事编程工作的开发人员既困难又乏味,幸好还有很多值得参考的指南,比如:<Joel Guerilla Guide to interviewing>,但最后雇佣与否,还得由你自己决 ...

  5. Ubuntu16.04安装mongodb 及使用

    1.导入软件源的公钥 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927 2.为mongodb创建软件 ...

  6. 洗牌问题 FZU - 1062 (传说中的思路题,hhh)

    设2n张牌分别标记为1, 2, -, n, n+1, -, 2n,初始时这2n张牌按其标号从小到大排列.经一次洗牌后,原来的排列顺序变成n+1, 1, n+2, 2, -, 2n, n.即前n张牌被放 ...

  7. BZOJ 4276: [ONTAK2015]Bajtman i Okrągły Robin

    最大权值匹配,贪心匈牙利即可. 检查一些人是否能被全部抓住可以采用左端点排序,右端点优先队列处理. By:大奕哥 #include<bits/stdc++.h> using namespa ...

  8. hihoCoder #1695 公平分队II

    题目大意 Alice 和 Bob 在玩一个游戏.Alice 将 $1$ 到 $2n$ 这 $2n$ 个整数分成两组,每组 $n$ 个.Bob 从中选一组,剩下一组归 Alice.Alice 可以与 B ...

  9. 【动态规划/多重背包问题】POJ1014-Dividing

    多重背包问题的优化版来做,详见之前的动态规划读书笔记. dp[i][j]表示前i中数加得到j时第i种数最多剩余几个(不能加和得到i的情况下为-1)递推式为: dp[i][j]=mi(dp[i-1][j ...

  10. 【树链剖分/倍增模板】【洛谷】3398:仓鼠找sugar

    P3398 仓鼠找sugar 题目描述 小仓鼠的和他的基(mei)友(zi)sugar住在地下洞穴中,每个节点的编号为1~n.地下洞穴是一个树形结构.这一天小仓鼠打算从从他的卧室(a)到餐厅(b),而 ...