欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

asp.net实现的群发邮件功能详解

程序员文章站 2023-11-18 16:32:46
本文实例讲述了asp.net实现的群发邮件功能。分享给大家供大家参考,具体如下: 前段时间在帮老师开发的网站中需要用到一个群发邮件的功能,而自己之前学习cms系统的时候用...

本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《asp.net优化技巧总结》、《asp.net字符串操作技巧汇总》、《asp.net操作xml技巧总结》、《asp.net文件操作技巧汇总》、《asp.net ajax技巧总结专题》及《asp.net缓存操作技巧总结》。

希望本文所述对大家asp.net程序设计有所帮助。