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


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

    源代码下载


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    work 2
    chapter02
    7.23作业
    第五章
    三层交换机
    基于nginx结合openssl实现https
    chapter10--进程和计划任务管理
    Linux系统管理08--服务器RAID及配置实战
    chapter07-- LVM逻辑卷
    Linux系统管理07--文件系统与LVM
  • 原文地址:https://www.cnblogs.com/zhangqs008/p/4687676.html
Copyright © 2020-2023  润新知