zoukankan      html  css  js  c++  java
  • Email发送

      1 public class EmailConfig
      2 {
      3 public static readonly string ServerAddress = ConfigurationManager.AppSettings["ServerAddress"];
      4 public static readonly string ServerUserName = ConfigurationManager.AppSettings["ServerUserName"];
      5 public static readonly string ServerUserPass = ConfigurationManager.AppSettings["ServerUserPass"];
      6 public static readonly string ServerPort = ConfigurationManager.AppSettings["ServerPort"];
      7 public static readonly string Authentication = ConfigurationManager.AppSettings["Authentication"];
      8 public static readonly string Sender = ConfigurationManager.AppSettings["Sender"];
      9 
     10 }
     11 
     12 public class EmailExten
     13 {
     14 /// <summary>
     15 /// 日志
     16 /// </summary>
     17 public static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
     18 
     19 
     20 #region 邮件发送组件
     21 /// <summary>
     22 /// 发送邮件 Created by ZhangQC 2016.08.23
     23 /// </summary>
     24 /// <param name="recipient">收件人</param>
     25 /// <param name="subject">主题</param>
     26 /// <param name="body">正文</param>
     27 /// <param name="isBodyHtml">指示邮件正文是否为html</param>
     28 /// <param name="encoding">编码</param>
     29 /// <param name="isAuthentication">是否需要凭证</param>
     30 /// <param name="files">附件</param>
     31 static void Send(string recipient, string subject, string body, bool isBodyHtml, Encoding encoding, bool isAuthentication, params string[] files)
     32 {
     33 //初始化邮件发送
     34 var smtpClient = new SmtpClient
     35 {
     36 Host = EmailConfig.ServerAddress,
     37 Port = EmailConfig.ServerPort.ToInt(),
     38 Timeout = 3000,
     39 EnableSsl=true
     40 };
     41 //初始化消息
     42 var message = new MailMessage(EmailConfig.Sender, recipient)
     43 {
     44 IsBodyHtml = isBodyHtml,
     45 SubjectEncoding = encoding,
     46 BodyEncoding = encoding,
     47 Subject = subject,
     48 Body = body
     49 };
     50 //增加附件
     51 message.Attachments.Clear();
     52 if (files != null && files.Length != 0)
     53 {
     54 for (int i = 0; i < files.Length; ++i)
     55 {
     56 var attach = new Attachment(files[i]);
     57 message.Attachments.Add(attach);
     58 }
     59 }
     60 //用户名密码
     61 if (isAuthentication)
     62 {
     63 smtpClient.Credentials = new NetworkCredential(EmailConfig.ServerUserName, EmailConfig.ServerUserPass);
     64 }
     65 
     66 
     67 //发送完成回调
     68 smtpClient.SendCompleted += new SendCompletedEventHandler(SmtpClientSendCompleted);
     69 //object mailSendState = message;
     70 //smtpClient.SendAsync(message, mailSendState);
     71 //smtpClient.SendAsync(message,"ok");
     72 smtpClient.Send(message);
     73 
     74 
     75 }
     76 
     77 /// <summary>
     78 /// 发送回调
     79 /// </summary>
     80 /// <param name="sender"></param>
     81 /// <param name="e"></param>
     82 static void SmtpClientSendCompleted(object sender, AsyncCompletedEventArgs e)
     83 {
     84 bool mailSent = true;
     85 string state = (string)e.UserState;
     86 
     87 if (e.Cancelled)
     88 {
     89 mailSent = false;
     90 }
     91 if (e.Error != null)
     92 {
     93 mailSent = false;
     94 }
     95 
     96 }
     97 
     98 /// <summary>
     99 /// 邮件发送 Created by ZhangQC 2016.08.23
    100 /// </summary>
    101 /// <param name="recipient">收件人</param>
    102 /// <param name="subject">主题</param>
    103 /// <param name="body">内容</param>
    104 public static bool Send(string recipient, string subject, string body)
    105 {
    106 if (string.IsNullOrEmpty(recipient))
    107 return false;
    108 try
    109 {
    110 Send(recipient, subject, body, true, Encoding.UTF8, true, null);
    111 return true;
    112 }
    113 catch (Exception ex)
    114 {
    115 Log.ErrorFormat("邮件发送失败:{0}",ex);
    116 return false;
    117 }
    118 }
    119 
    120 static void Send(string recipient, string sender, string subject, string body)
    121 {
    122 if (string.IsNullOrEmpty(recipient))
    123 return;
    124 
    125 Send(recipient, subject, body, true, Encoding.UTF8, true, null);
    126 }
    127 #endregion
    128 }
  • 相关阅读:
    性能测试的感悟
    Web性能测试问题,mysql分析之一
    LoadRunner使用代理远程执行提示找不到“pre_cci.c”文件
    yii widget验证码不实用form验证的方法
    mysql 1449 : The user specified as a definer ('root'@'%') does not exist 解决方法
    (亲测)nginx解决thinkphp中pathinfo的问题
    一个超好用的php header下载函数
    编程中的一些概念,KISS、DRY、MVC、OOP、REST
    8个开发必备的PHP功能(转)
    关于按钮在短时间内多次点击的问题.
  • 原文地址:https://www.cnblogs.com/creater/p/6322078.html
Copyright © 2011-2022 走看看