• 调用MailMessage发送邮件


        /// <summary>
        /// 邮件类
        /// </summary>
        public class SendMail
        {
            #region 私有变量
            private string fromEmail;
            private string fromPwd;
            private List<string> receiveEmail = new List<string>();
            private string subject;
            private string body;
            private string host;
            private int port;
            #endregion
    
            #region 公共变量
            /// <summary>
            /// 用于发送邮件的邮箱账号
            /// </summary>
            public string FromEmail
            {
                get { return fromEmail; }
                set { fromEmail = value; }
            }
    
            /// <summary>
            /// 用于发送邮件的邮箱密码
            /// </summary>
            public string FromPwd
            {
                get { return fromPwd; }
                set { fromPwd = value; }
            }
    
            /// <summary>
            /// 接收邮件的邮箱
            /// </summary>
            public List<string> ReceiveEmail
            {
                get { return receiveEmail; }
                set { receiveEmail = value; }
            }
    
            /// <summary>
            /// 邮件主题
            /// </summary>
            public string Subject
            {
                get { return subject; }
                set { subject = value; }
            }
    
            /// <summary>
            /// 邮件内容
            /// </summary>
            public string Body
            {
                get { return body; }
                set { body = value; }
            }
    
            /// <summary>
            /// SMTP服务的主机名称或IP地址
            /// </summary>
            public string Host
            {
                get { return host; }
                set { host = value; }
            }
    
            /// <summary>
            /// 端口号
            /// </summary>
            public int Port
            {
                get { return port; }
                set { port = value; }
            }
            #endregion
    
            #region 构造函数
            /// <summary>
            /// 构造 赋值
            /// </summary>
            public SendMail()
            {
                fromEmail = "";
           //这里应该为邮箱授权码 fromPwd = ""; subject = ""; body = "!"; host = ""; port = ; } #endregion #region 发送邮件 /// <summary> /// 发送邮件 /// </summary> /// <param name="errorMsg"></param> /// <param name="lstFileName">附件路径集合</param> /// <returns></returns> public bool Send(out string errorMsg, List<string> lstFileName = null) { errorMsg = string.Empty; try { MailMessage mailMsg = new MailMessage(); mailMsg.From = new MailAddress(fromEmail); mailMsg.Subject = subject; mailMsg.Body = body; if (receiveEmail.Count < 1) { errorMsg = "收件人为空"; return false; } foreach (string item in receiveEmail) { mailMsg.To.Add(item); } #region 添加附件 if (lstFileName != null) { foreach (var item in lstFileName) { mailMsg.Attachments.Add(new Attachment(item)); } } #endregion SmtpClient client = new SmtpClient(); client.Host = host; client.Port = port; client.Credentials = new NetworkCredential(fromEmail, fromPwd); client.EnableSsl = true; client.DeliveryFormat = System.Net.Mail.SmtpDeliveryFormat.International; client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; client.Send(mailMsg); } catch (Exception ex) { errorMsg = ex.Message; return false; } return true; } /// <summary> /// 异步发送邮件 /// </summary> ///<param name="lstFileName">附件路径集合</param> /// <param name="errorMsg"></param> public async Task<bool> SendAsync(List<string> lstFileName = null) { try { MailMessage mailMsg = new MailMessage(); mailMsg.From = new MailAddress(fromEmail); mailMsg.Subject = subject; mailMsg.Body = body; if (receiveEmail.Count < 1) { return false; } foreach (string item in receiveEmail) { mailMsg.To.Add(item); } #region 添加附件 if (lstFileName != null) { foreach (var item in lstFileName) { mailMsg.Attachments.Add(new Attachment(item)); } } #endregion SmtpClient client = new SmtpClient(); client.Host = host; client.Port = port; client.Credentials = new NetworkCredential(fromEmail, fromPwd); client.EnableSsl = true; await client.SendMailAsync(mailMsg); } catch { return false; } return true; } #endregion }

     注意,传过来的参数为附件的路径,并且这里的密码应为邮箱授权码。

  • 相关阅读:
    CLR(Common Language Runtime)
    六个经典的英语面试问题
    XML基本知识(三)
    vc++中各种字符串(转载)
    winform窗体间传值
    jQuery实现按比例缩放图片
    .net中几个名词解释
    XML Schema 定义
    C#中TreeView组件使用方法初步
    微软电话面试题
  • 原文地址:https://www.cnblogs.com/TheBob/p/10404870.html
Copyright © 2020-2023  润新知