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

发布时间 - 2026-01-11 01:29:12    点击率:

本文实例讲述了asp.net实现的群发邮件功能。分享给大家供大家参考,具体如下:

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

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

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程序设计有所帮助。


# asp.net  # 群发  # 邮件  # Asp.net发送邮件的两种方法小结  # 在asp.NET 中使用SMTP发送邮件的实现代码  # asp.net2.0实现邮件发送(测试成功)  # 在ASP.NET2.0中通过Gmail发送邮件的代码  # Asp.Net类库中发送电子邮件的代码  # 用ASP.NET做的个性化的邮件发送系统  # asp.net mvc发送邮件实例讲解  # ASP.NET MVC 5之邮件服务器与客户端  # ASP.NET Core 1.0实现邮件发送功能  # asp.net基于windows服务实现定时发送邮件的方法  # ASP.NET邮件发送system.Net.Mail案例  # 创建基于ASP.NET的SMTP邮件服务的具体方法  # 的是  # 操作技巧  # 自己的  # 也有  # 成了  # 相关内容  # 告诉我  # 多个  # 将在  # 要在  # 感兴趣  # 给大家  # 比较好  # 自定义  # 更多关于  # 送了  # 才是真正  # 只做  # 所述  # 前段时间 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  MySQL查询结果复制到新表的方法(更新、插入)  如何正确选择百度移动适配建站域名?  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  网站制作企业,网站的banner和导航栏是指什么?  微信小程序 canvas开发实例及注意事项  JS经典正则表达式笔试题汇总  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比  如何基于PHP生成高效IDC网络公司建站源码?  公司门户网站制作流程,华为官网怎么做?  教你用AI润色文章,让你的文字表达更专业  lovemo网页版地址 lovemo官网手机登录  教学论文网站制作软件有哪些,写论文用什么软件 ?  JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康  免费视频制作网站,更新又快又好的免费电影网站?  Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  如何快速搭建自助建站会员专属系统?  Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】  如何在阿里云通过域名搭建网站?  如何快速生成橙子建站落地页链接?  如何续费美橙建站之星域名及服务?  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  如何彻底删除建站之星生成的Banner?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  如何用美橙互联一键搭建多站合一网站?  制作电商网页,电商供应链怎么做?  Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】  Swift中switch语句区间和元组模式匹配  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  如何用虚拟主机快速搭建网站?详细步骤解析  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  b2c电商网站制作流程,b2c水平综合的电商平台?  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  如何快速启动建站代理加盟业务?  JS中对数组元素进行增删改移的方法总结  利用vue写todolist单页应用  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】