zoukankan      html  css  js  c++  java
  • c# Winform实现发送邮件

    邮件发送类 来源网上 稍作调整。。。出处忘了

    /**
    * 命名空间: EmailSend
    * 类 名: EmailSend
    *
    * 作者        变更内容            变更日期
    * ─────────────────────────────────
    * XXX        初版              2018-10-31 09:55:42 
    */
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net.Mail;
    using System.Text;
    
    namespace EmailSend
    {
        public class EmailSend
        {
    
            /// <summary>
            /// 发送者
            /// </summary>
            public string mailFrom { get; set; }
    
            /// <summary>
            /// 收件人
            /// </summary>
            public string[] mailToArray { get; set; }
    
            public enumSMTPType mailSMTP { 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; }
    
            #region 发送邮件
            /// <summary>
            /// 发送邮件
            /// </summary>
            /// <returns></returns>
            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.EnableSsl = true;
    
                //指定发件人的邮件地址和密码以验证发件人身份
                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;
                }
    
            }
            #endregion
    
            #region 发送邮件显示异常
            /// <summary>
            /// 发送邮件显示异常
            /// </summary>
            /// <returns></returns>
            public bool Send(out string errs)
            {
                //使用指定的邮件地址初始化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.EnableSsl = true;
    
                //指定发件人的邮件地址和密码以验证发件人身份
                smtp.Credentials = new System.Net.NetworkCredential(mailFrom, mailPwd);
    
    
                //设置SMTP邮件服务器
                smtp.Host = host;
    
                try
                {
                    //将邮件发送到SMTP邮件服务器
                    smtp.Send(myMail);
                    errs = "";
                    return true;
                   
    
                }
                catch (System.Net.Mail.SmtpException ex)
                {
                    errs = ex.Message;
                    return false;
                 
                }
    
            }
            #endregion
        }
    }
    View Code

    发送断代码

     private void button2_Click(object sender, EventArgs e)
            {
                Email email = new Email();
                email.mailFrom = "aaaa@126.com";
                email.mailPwd = "密码";
                email.mailSubject = "邮件主题31";
                email.mailBody = "这是一封测试邮件";
                email.isbodyHtml = false;    //是否是HTML
                email.host = "smtp.126.com";//如果是QQ邮箱则:smtp:qq.com,依次类推
               // email.host = "smtp.qq.com";
                email.mailToArray = new string[] { "333@qq.com" };//接收者邮件集合
                 //email.mailCcArray = new string[] { "******@qq.com" };//抄送者邮件集合
    
                if (email.Send())
                {
                    MessageBox.Show("ok");
    
                }
                else
                MessageBox.Show("NoOK");
            }
    View Code

    发送的邮件要开通smtp功能。这个网站进入邮箱-->设置-->pop/smtp可以找到

  • 相关阅读:
    Lucene 入门实战
    ActiveMQ 入门实战(3)--SpringBoot 整合 ActiveMQ
    ActiveMQ 入门实战(2)--Java 操作 ActiveMQ
    Hdevelop(Halcon)快捷键
    2021年9月3日第7次刷第一章。但行好事莫问前程
    大家好。我准备第6次从第一章重新往回写了。
    ODOO13之十四 :Odoo 13开发之部署和维护生产实例
    Odoo 13之十三 :开发之创建网站前端功能
    ODOO13之12:Odoo 13开发之报表和服务端 QWeb
    doo 13 之11 :开发之看板视图和用户端 QWeb
  • 原文地址:https://www.cnblogs.com/SoftWareIe/p/9889348.html
Copyright © 2011-2022 走看看