• C# 发送邮件3


      这篇文章主要介绍如何使用C#的MailAddress类进行邮件的发送。

      1.首先引入命名空间using System.Net.Mail;

      2.将发送的邮件的功能封装成一个类,该类中包含了发送邮件的基本功能:收件人(多人),抄送(多人),发送人,主题,邮件正文,附件等,封装的Email类如下:

    复制代码
     public class Email     {         /// <summary>         /// 发送者         /// </summary>         public string mailFrom { get; set; }          /// <summary>         /// 收件人         /// </summary>         public string[] mailToArray { get; set; }          /// <summary>         /// 抄送         /// </summary>         public string[] mailCcArray { get; set; }          /// <summary>         /// 标题         /// </summary>         public string mailSubject { get; set; }          /// <summary>         /// 正文         /// </summary>         public string mailBody { get; set; }          /// <summary>         /// 发件人密码         /// </summary>         public string mailPwd { get; set; }          /// <summary>         /// SMTP邮件服务器         /// </summary>         public string host { get; set; }          /// <summary>         /// 正文是否是html格式         /// </summary>         public bool isbodyHtml { get; set; }          /// <summary>         /// 附件         /// </summary>         public string[] attachmentsPath { get; set; }          public bool Send()         {             //使用指定的邮件地址初始化MailAddress实例             MailAddress maddr = new MailAddress(mailFrom);             //初始化MailMessage实例             MailMessage myMail = new MailMessage();               //向收件人地址集合添加邮件地址             if (mailToArray != null)             {                 for (int i = 0; i < mailToArray.Length; i++)                 {                     myMail.To.Add(mailToArray[i].ToString());                 }             }              //向抄送收件人地址集合添加邮件地址             if (mailCcArray != null)             {                 for (int i = 0; i < mailCcArray.Length; i++)                 {                     myMail.CC.Add(mailCcArray[i].ToString());                 }             }             //发件人地址             myMail.From = maddr;              //电子邮件的标题             myMail.Subject = mailSubject;              //电子邮件的主题内容使用的编码             myMail.SubjectEncoding = Encoding.UTF8;              //电子邮件正文             myMail.Body = mailBody;              //电子邮件正文的编码             myMail.BodyEncoding = Encoding.Default;              myMail.Priority = MailPriority.High;              myMail.IsBodyHtml = isbodyHtml;              //在有附件的情况下添加附件             try             {                 if (attachmentsPath != null && attachmentsPath.Length > 0)                 {                     Attachment attachFile = null;                     foreach (string path in attachmentsPath)                     {                         attachFile = new Attachment(path);                         myMail.Attachments.Add(attachFile);                     }                 }             }             catch (Exception err)             {                 throw new Exception("在添加附件时有错误:" + err);             }              SmtpClient smtp = new SmtpClient();             //指定发件人的邮件地址和密码以验证发件人身份             smtp.Credentials = new System.Net.NetworkCredential(mailFrom, mailPwd);               //设置SMTP邮件服务器             smtp.Host = host;              try             {                 //将邮件发送到SMTP邮件服务器                 smtp.Send(myMail);                 return true;              }             catch (System.Net.Mail.SmtpException ex)             {                 return false;             }          }     }
    复制代码

      3.页面调用发送邮件的类

    复制代码
    protected void Send_Click(object sender, EventArgs e)         {             Email email = new Email();             email.mailFrom = "发送人的邮箱地址";             email.mailPwd = "发送人邮箱的密码";             email.mailSubject = "邮件主题";             email.mailBody = "邮件内容";             email.isbodyHtml = true;    //是否是HTML             email.host = "smtp.126.com";//如果是QQ邮箱则:smtp:qq.com,依次类推             email.mailToArray = new string[] { "******@qq.com","12345678@qq.com"};//接收者邮件集合             email.mailCcArray = new string[] { "******@qq.com" };//抄送者邮件集合             if (email.Send())             {                 Response.Write("<script type='text/javascript'>alert('发送成功!');history.go(-1)</script>");//发送成功则提示返回当前页面;              }             else             {                 Response.Write("<script type='text/javascript'>alert('发送失败!');history.go(-1)</script>");             }         }
    复制代码

      

      以上就完成了在C#中如何发送邮件。

      点击下载Demo

     

  • 相关阅读:
    qt5--创建控件的两种方式
    qt5-编码转换
    C++qt助手assistant
    C++opencv绘制几何图形
    C++opencv创建图像
    【全球软件大会】华为前端工程师分享:华为云官网的智能化实践
    图解 Redis丨这就是 RDB 快照,能记录实际数据的
    云小课 | 玩转HiLens Studio之快速订购HiLens Studio版本
    带你认识4种设计模式:代理模式、装饰模式、外观模式和享元模式
    线性表、顺序表和链表,你还分不清?
  • 原文地址:https://www.cnblogs.com/dullbaby/p/5340631.html
Copyright © 2020-2023  润新知