C#简单邮件群发通用类

 更新时间:2016年03月17日 14:18:25   作者:上善,若水  
这篇文章主要为大家分享了简单的C#邮件群发通用类,代码简单实用,感兴趣的小伙伴们可以参考一下

本文实例为大家介绍了C#邮件群发通用类,供大家参考,具体内容如下

public static class Email
  {
    /// <summary>
    /// 发件人
    /// </summary>
    public static string mailFrom { get; set; }

    /// <summary>
    /// 收件人
    /// </summary>
    public static string[] mailToArray { get; set; }

    /// <summary>
    /// 抄送
    /// </summary>
    public static string[] mailCcArray { get; set; }

    /// <summary>
    /// 标题
    /// </summary>
    public static string mailSubject { get; set; }

    /// <summary>
    /// 正文
    /// </summary>
    public static string mailBody { get; set; }

    /// <summary>
    /// 发件人密码
    /// </summary>
    public static string mailPwd { get; set; }

    /// <summary>
    /// SMTP邮件服务器
    /// </summary>
    public static string host { get; set; }  

    /// <summary>
    /// 邮件服务器端口
    /// </summary>
    public static int port { get; set; }

    /// <summary>
    /// 正文是否是html格式
    /// </summary>
    public static bool isbodyHtml { get; set; }

    /// <summary>
    /// 附件
    /// </summary>
    public static string[] attachmentsPath { get; set; }

    public static 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;

      //电子邮件不是html格式
      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.Message);
      }

      SmtpClient client = new SmtpClient();

      //指定发件人的邮件地址和密码以验证发件人身份
      client.Credentials = new NetworkCredential(mailFrom, mailPwd);

      //设置SMTP邮件服务器
      //client.Host = "smtp." + myMail.From.Host;
      client.Host = host;

      //SMTP邮件服务器端口
      client.Port = port;

      //是否使用安全连接
      //client.EnableSsl = true;

      try
      {
        //将邮件发送到SMTP邮件服务器
        client.Send(myMail);
        return true;
      }
      catch (SmtpException ex)
      {
        string msg = ex.Message;
        return false;
      }

    }

希望本文所述对大家学习C#程序设计有所帮助。

相关文章

  • 将字符串转换成System.Drawing.Color类型的方法

    将字符串转换成System.Drawing.Color类型的方法

    将字符串转换成System.Drawing.Color类型的方法,需要的朋友可以参考一下
    2013-04-04
  • c# 断点续传的实现

    c# 断点续传的实现

    这篇文章主要介绍了c# 断点续传的实现,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2020-12-12
  • C#异常执行重试的实现方法

    C#异常执行重试的实现方法

    这篇文章主要介绍了C#异常执行重试的一种实现方法,重试模式可以用poll替代,通过示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2021-08-08
  • C#框架winform实现简单点餐系统

    C#框架winform实现简单点餐系统

    这篇文章主要为大家详细介绍了C#框架winform实现简单点餐系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • WinForm窗体调用WCF服务窗体卡死问题

    WinForm窗体调用WCF服务窗体卡死问题

    在Winform窗体中调用部署在其他服务器中的WCF服务时,由于调用服务需要一定时延,因此窗体在这段时间一直卡住不能进行其他操作
    2012-12-12
  • C#实现文件操作(复制,移动,删除)的方法详解

    C#实现文件操作(复制,移动,删除)的方法详解

    File类提供了常见的文件操作函数,包括复制、移动、删除、创建快捷方式等,本文将通过一些简单的示例为大家详细讲讲具体的使用,希望对大家有所帮助
    2023-05-05
  • C#中闭包概念讲解

    C#中闭包概念讲解

    这篇文章主要介绍了C#中闭包概念讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • C#实现启动项管理的示例代码

    C#实现启动项管理的示例代码

    这篇文章主要为大家详细介绍了如何利用C#实现启动项管理,文中的示例代码讲解详细,对我们学习C#有一定的帮助,感兴趣的小伙伴可以了解一下
    2022-12-12
  • C#图像对比度调整的方法

    C#图像对比度调整的方法

    这篇文章主要介绍了C#图像对比度调整的方法,涉及C#实现图像对比度操作的相关技巧,需要的朋友可以参考下
    2015-04-04
  • 手动编译C#代码的方法

    手动编译C#代码的方法

    在本文里小编给大家分享的是关于手动编译C#代码的方法和步骤,对此有需要的朋友们可以学习下。
    2018-12-12

最新评论