• C#邮件发送


      这篇文章主要介绍如何使用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

  • 相关阅读:
    [iOS]利用系统NSRegularExpression使用正则表达式
    [iOS]URL编码和解码
    [其他]正则表达式大全
    [算法]不用第三个数交换2个数的位置
    java . -- IDEA运行最简单的Java程序Hello World
    IOS . -转载-10行代码搞定九宫格
    SourceTree --转载 SourceTree大文件上传提示POST git-receive-pack (chunked)相关问题记录
    iOS -转载-使用Navicat查看数据表的ER关系图
    iOS -转载-开发之个人开发者账号转公司开发者账号
    iOS --转载2018苹果$299美元企业级开发者账号申请攻略
  • 原文地址:https://www.cnblogs.com/akwwl/p/3191713.html
Copyright © 2020-2023  润新知