温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

asp.net如何实现群发邮件功能

发布时间:2020-10-16 15:31:02 来源:亿速云 阅读:149 作者:小新 栏目:编程语言

这篇文章主要介绍了asp.net如何实现群发邮件功能,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

前段时间在帮老师开发的网站中需要用到一个群发邮件的功能,而自己之前学习cms系统的时候用的we7的群发邮件功能也有一些问题,于是乎便自己去网上查了一下资料,自己总结了一下,并且封装成了一个类,亲测有用,支持附件,希望对大家也有些帮助,我测试时用的是qq邮箱,成功的前提是要在邮箱设置中打开smtp服务功能,如qq邮箱设置里面的账户选项卡里面把需要的功能勾上:

asp.net如何实现群发邮件功能

其他邮箱的话原理一样~~~~~~

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Mail;
using System.Web;
namespace MailSend
{
  public class SendEmail
  {
    /// <summary>
    /// 群发邮件函数
    /// </summary>
    /// <param name="subject">发送的主题</param>
    /// <param name="body">发送的内容</param>
    /// <param name="email_list">收件人列表,通过|来分割开来,可以自己定义</param>
    /// <param name="File_Path">发送附件的地址,获取了路径后上传</param>
    public static void Send(string subject, string body, string email_list, string File_Path)
    {
      string MailUser = "XXX@qq.com";//我测试的是qq邮箱,其他邮箱一样的道理
      string MailPwd = "你的密码";//邮箱密码
      string MailName = "测试";
      string MailHost = "smtp.exmail.qq.com";//根据自己选择的邮箱来查询smtp的地址
      MailAddress from = new MailAddress(MailUser, MailName); //邮件的发件人
      MailMessage mail = new MailMessage();
      //设置邮件的标题
      mail.Subject = subject;
      //设置邮件的发件人
      //Pass:如果不想显示自己的邮箱地址,这里可以填符合mail格式的任意名称,真正发mail的用户不在这里设定,这个仅仅只做显示用
      mail.From = from;
      //设置邮件的收件人
      string address = "";
      //传入多个邮箱,用“|”分割开,可以自己自定义,再通过mail.To.Add()添加到列表
      string[] email = email_list.Split('|');
      foreach (string name in email)
      {
        if (name != string.Empty)
        {
          address = name;
          mail.To.Add(new MailAddress(address));
        }
      }
      //设置邮件的抄送收件人
      //这个就简单多了,如果不想快点下岗重要文件还是CC一份给领导比较好
      //mail.CC.Add(new MailAddress("Manage@hotmail.com", "尊敬的领导");
      //设置邮件的内容
      mail.Body = body;
      //设置邮件的格式
      mail.BodyEncoding = System.Text.Encoding.UTF8;
      mail.IsBodyHtml = true;
      //设置邮件的发送级别
      mail.Priority = MailPriority.Normal;
      //设置邮件的附件,将在客户端选择的附件先上传到服务器保存一个,然后加入到mail中
      if (File_Path != "")
      {
        mail.Attachments.Add(new Attachment(File_Path));
        mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess;
      }
      SmtpClient client = new SmtpClient();
      //设置用于 SMTP 事务的主机的名称,填IP地址也可以了
      client.Host = MailHost;
      //设置用于 SMTP 事务的端口,默认的是 25
      client.Port = 25;
      client.UseDefaultCredentials = false;
      //这里才是真正的邮箱登陆名和密码, 我的用户名为 MailUser ,我的密码是 MailPwd
      client.Credentials = new System.Net.NetworkCredential(MailUser, MailPwd);
      client.DeliveryMethod = SmtpDeliveryMethod.Network;
      ////如果发送失败,SMTP 服务器将发送 失败邮件告诉我
      mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
      //都定义完了,正式发送了,很是简单吧!
      client.Send(mail);
    }
  }
}

感谢你能够认真阅读完这篇文章,希望小编分享asp.net如何实现群发邮件功能内容对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,遇到问题就找亿速云,详细的解决方法等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI