• 发邮件


        /// <summary>
        /// 邮件实体
        /// </summary>
        public class EmailModel
        {
            /// <summary>
            /// 名称
            /// </summary>
            public string Name { get; set; }
            /// <summary>
            /// 编码
            /// </summary>
            public string Encode { get; set; }
            /// <summary>
            /// 服务器地址
            /// </summary>
            public string IP { get; set; }
            /// <summary>
            /// 账户
            /// </summary>
            public string Identity { get; set; }
            /// <summary>
            /// 密码
            /// </summary>
            public string Password { get; set; }
        }
     1     /// <summary>
     2     /// 邮件服务缓存
     3     /// </summary>
     4     public class Email_Singleton 
     5     {
     6         private static List<EmailModel> instance=null;
     7         private static int index;
     8 
     9         private Email_Singleton()
    10         { }
    11 
    12         public static EmailModel GetEmailModel()
    13         {
    14             EmailModel result = new EmailModel();
    15             if (instance ==null)
    16             {
    17                 if (instance == null)
    18                 {
    19                     XmlDocument xml = new XmlDocument();
    20                     string temp_url = System.AppDomain.CurrentDomain.BaseDirectory + "Emails.xml";
    21                     xml.Load(temp_url);
    22                     XmlNodeList xmlList = xml.SelectNodes("/Emails/Email");
    23                     instance = new List<EmailModel>();
    24                     if (xmlList != null && xmlList.Count >= 1)
    25                     {
    26                         EmailModel _temp;
    27                         foreach (XmlNode item in xmlList)
    28                         {
    29                             if (item.ChildNodes == null)
    30                             {
    31                                 continue;
    32                             }
    33 
    34                             _temp = new EmailModel();
    35                             _temp.Name = item.Attributes["name"].Value;
    36                             _temp.Encode = item.Attributes["encode"].Value;
    37                             foreach (XmlNode item_ in item.ChildNodes)
    38                             {
    39                                 switch (item_.Name)
    40                                 {
    41                                     case "ip":
    42                                         _temp.IP = item_.InnerText;
    43                                         break;
    44                                     case "Identity":
    45                                         _temp.Identity = item_.InnerText;
    46                                         break;
    47                                     case "Password":
    48                                         _temp.Password = item_.InnerText;
    49                                         break;
    50                                 }
    51                             }
    52 
    53                             instance.Add(_temp);
    54                         }
    55 
    56                         if (instance.Count >= 1)
    57                         {
    58                             index = 0;
    59                             result = instance[index];
    60                         }
    61                     }
    62                 }
    63             }
    64             else
    65             {
    66                 if (instance.Count>=1)
    67                 {
    68                     result = instance[index];
    69                     index++;
    70                     index = index >= instance.Count ? 0 : index;
    71                 }
    72             }
    73 
    74             ILog log = LogManager.GetLogger(PublicEnum.SystemLog.ErrorLog.ToString());
    75             log.Info("发送邮箱:" + result.Identity + ",名称:" + result.Name);
    76             return result;
    77         }
    78     }
     1     /// <summary>
     2     /// 发送邮件类
     3     /// </summary>
     4     public class Email
     5     {
     6         /// <summary>
     7         /// 发送邮件
     8         /// </summary>
     9         /// <param name="userid">接收人邮件</param>
    10         /// <param name="content">发送内容</param>
    11         /// <param name="subject">发送主题,可为空,使用默认主题</param>
    12        /// <param name="csuserEmailList">抄送人邮件列表</param>
    13         public static void sendemail(string userEmail, string content, string subject,string csuserEmailList)
    14         {
    15             MailMessage mail = new MailMessage();
    16             try
    17             {
    18                 string dest;
    19                 dest = userEmail;
    20                 EmailModel mail_model= Email_Singleton.GetEmailModel();
    21                 if (mail_model == null)
    22                 {
    23                     return;
    24                 }
    25 
    26                 mail.From = new MailAddress(mail_model.Identity, mail_model.Name, Encoding.GetEncoding(mail_model.Encode));
    27                 mail.To.Add(new MailAddress(dest, userEmail, Encoding.GetEncoding(mail_model.Encode)));
    28                 if (!string.IsNullOrEmpty(csuserEmailList))//发送给抄送人
    29                 {
    30                     string[] sp_readers = csuserEmailList.Split(',');
    31                     string csuseremil = "";
    32                     foreach (string str in sp_readers)
    33                     {
    34                         if (!string.IsNullOrEmpty(str))
    35                         {
    36                             csuseremil = str;
    37 
    38                             mail.CC.Add(new MailAddress(csuseremil, str, System.Text.Encoding.GetEncoding(mail_model.Encode)));
    39                         }
    40                     }
    41                 }
    42 
    43                 mail.Subject = subject == "" ? "测试平台系统邮件" : subject.Trim();
    44                 mail.Body = content;
    45                 mail.IsBodyHtml = true;
    46                 mail.Priority = MailPriority.High;
    47                 mail.SubjectEncoding = Encoding.GetEncoding(mail_model.Encode);
    48                 mail.BodyEncoding = Encoding.GetEncoding(mail_model.Encode);
    49                 using (SmtpClient smtp = new SmtpClient(mail_model.IP))
    50                 {//邮箱ip地址
    51                     smtp.EnableSsl = true;
    52                     smtp.UseDefaultCredentials = false;
    53                     smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
    54                     smtp.Credentials = new System.Net.NetworkCredential(mail_model.Identity, mail_model.Password);
    55                     ServicePointManager.ServerCertificateValidationCallback = (sender, cert, chain, error) =>
    56                     {//为错误:根据验证过程,远程证书无效
    57                         return true;
    58                     };
    59                     smtp.Send(mail);
    60                     ILog log = LogManager.GetLogger(PublicEnum.SystemLog.MessageLog.ToString());
    61                     log.Info("收件人" + userEmail + "的邮件发送成功;。服务邮箱:" + mail_model.Identity);
    62                 }
    63             }
    64             catch (Exception ex)
    65             {
    66                 ILog log = LogManager.GetLogger(PublicEnum.SystemLog.ErrorLog.ToString());
    67                 log.Info("收件人" + userEmail + "的邮件发送失败。详细信息:" + ex.Message + ex.Source);
    68             }
    69             finally {
    70                 mail.Dispose();
    71             }
    72         }
    73     }
    Emails.xml

  • 相关阅读:
    python学习笔记(十五)-异常处理
    python学习笔记(十四)python实现发邮件
    python学习笔记(十三)-python对Excel进行读写修改操作
    python学习笔记(十二)-网络编程
    python学习笔记(十一)-python程序目录工程化
    python学习笔记(九)-函数2
    python学习笔记(八)-模块
    勿忘初心,勇往前行
    【tp6】解决Driver [Think] not supported.
    【Linux】LNMP1.6 环境报500错误解决方法
  • 原文地址:https://www.cnblogs.com/kongxp/p/5672461.html
Copyright © 2020-2023  润新知