对于.NET而言,从2.0开始,发邮件已经是一件非常easy 的事了。下面我给出一个用C#群发邮件的实例,做了比较详细的注解,希望对有需要的朋友有所help。
// 引入命名空间
using System.Net;
using System.Net.Mail;
SmtpClient smtp = new SmtpClient(); //实例化一个SmtpClient
smtp.DeliveryMethod = SmtpDeliveryMethod.Network; //将smtp的出站方式设为 Network
smtp.EnableSsl = false;//smtp服务器是否启用SSL加密
smtp.Host = "smtp.163.com"; //指定 smtp 服务器地址
smtp.Port = 25; //指定 smtp 服务器的端口,默认是25,如果采用默认端口,可省去
//如果你的SMTP服务器不需要身份认证,则使用下面的方式,不过,目前基本没有不需要认证的了
smtp.UseDefaultCredentials = true;
//如果需要认证,则用下面的方式
smtp.Credentials = new NetworkCredential("邮箱帐号@163.com", "邮箱密码");
MailMessage mm = new MailMessage(); //实例化一个邮件类
mm.Priority = MailPriority.High; //邮件的优先级,分为 Low, Normal, High,通常用 Normal即可
mm.From = new MailAddress("邮箱帐号@163.com", "真有意思", Encoding.GetEncoding(936));
//收件方看到的邮件来源;
//第一个参数是发信人邮件地址
//第二参数是发信人显示的名称
//第三个参数是 第二个参数所使用的编码,如果指定不正确,则对方收到后显示乱码
//936是简体中文的codepage值
注:上面的邮件来源,一定要和你登录邮箱的帐号一致,否则会认证失败
mm.ReplyTo = new MailAddress("test_box@gmail.com", "我的接收邮箱", Encoding.GetEncoding(936));
//ReplyTo 表示对方回复邮件时默认的接收地址,即:你用一个邮箱发信,但却用另一个来收信
//上面后两个参数的意义, 同 From 的意义
mm.CC.Add("a@163.com,b@163.com,c@163.com");
//邮件的抄送者,支持群发,多个邮件地址之间用 半角逗号 分开
//当然也可以用全地址,如下:
mm.CC.Add(new MailAddress("a@163.com", "抄送者A", Encoding.GetEncoding(936)));
mm.CC.Add(new MailAddress("b@163.com", "抄送者B", Encoding.GetEncoding(936)));
mm.CC.Add(new MailAddress("c@163.com", "抄送者C", Encoding.GetEncoding(936)));
mm.Bcc.Add("d@163.com,e@163.com");
//邮件的密送者,支持群发,多个邮件地址之间用 半角逗号 分开
//当然也可以用全地址,如下:
mm.CC.Add(new MailAddress("d@163.com", "密送者D", Encoding.GetEncoding(936)));
mm.CC.Add(new MailAddress("e@163.com", "密送者E", Encoding.GetEncoding(936)));
mm.Sender = new MailAddress("xxx@xxx.com", "邮件发送者", Encoding.GetEncoding(936));
//可以任意设置,此信息包含在邮件头中,但并不会验证有效性,也不会显示给收件人
//说实话,我不知道有啥实际作用,大家可不理会,也可不写此项
mm.To.Add("g@163.com,h@163.com");
//邮件的接收者,支持群发,多个地址之间用 半角逗号 分开
//当然也可以用全地址添加
mm.To.Add(new MailAddress("g@163.com", "接收者g", Encoding.GetEncoding(936)));
mm.To.Add(new MailAddress("h@163.com", "接收者h", Encoding.GetEncoding(936)));
mm.Subject = "这是邮件标题"; //邮件标题
mm.SubjectEncoding = Encoding.GetEncoding(936);
// 这里非常重要,如果你的邮件标题包含中文,这里一定要指定,否则对方收到的极有可能是乱码。
// 936是简体中文的pagecode,如果是英文标题,这句可以忽略不用
mm.IsBodyHtml = true; //邮件正文是否是HTML格式
mm.BodyEncoding = Encoding.GetEncoding(936);
//邮件正文的编码, 设置不正确, 接收者会收到乱码
mm.Body = "<font color="red">邮件测试,呵呵</font>";
//邮件正文
mm.Attachments.Add( new Attachment( @"d:a.doc", System.Net.Mime.MediaTypeNames.Application.Rtf ) );
//添加附件,第二个参数,表示附件的文件类型,可以不用指定
//可以添加多个附件
mm.Attachments.Add( new Attachment( @"d:b.doc") );
smtp.Send( mm ); //发送邮件,如果不返回异常, 则大功告成了。
分享到:
相关推荐
SmtpClient类负责与SMTP服务器通信,MailMessage类用于封装邮件信息,如发件人、收件人、主题和正文,而AlternateView则可以添加不同的内容格式,如HTML和纯文本,以适应不同的邮件阅读器。 现在,我们转向...
里面包含了加密,和生成流水号(当前年度+地区号+流水号(0001)递增),还有发送邮件.其中有些公共的方法是在CommonHepler 还有一个DBHepler类这里就不提供了(内容有点多) 我们来看下选择框吧 选择框查询需要...
LumiSoft.Net中的SMTP类库允许开发者编写程序来发送邮件,包括设置发件人、收件人、主题、正文以及附件等内容,支持身份验证和SSL/TLS加密,确保邮件安全传输。 **POP** 是Post Office Protocol的缩写,主要用于...
在邮件内容方面,我们通常会用到`MailMessage`类,它可以设置发件人、收件人、抄送人、密送人以及邮件的主题和正文。 接着,我们将讨论定时任务的实现。在C#中,我们可以利用`System.Threading.Timer`类或者`System...
ASP.NET环境下使用Jmail组件发送邮件是一个常见的任务,尤其对于开发Web应用程序的程序员来说,能够通过电子邮件与用户交互是至关重要的。Jmail是一款用于发送邮件的ActiveX组件,它可以在ASP.NET环境中工作,尽管...
9. **邮件发送**:`EmailSender`类用于发送邮件功能,可以设置SMTP服务器,发件人,主题,正文等,实现自动化发送通知或验证邮件。 10. **加密解密**:为了保护敏感信息的安全,类库中可能包含`CryptoHelper`,提供...
在VB.NET中进行网络编程是开发应用程序的重要组成部分,特别是当你需要处理邮件收发时。本章节将深入探讨如何使用VB.NET实现POP3协议接收邮件以及SMTP协议发送邮件。 首先,让我们了解一下POP3(Post Office ...
在Outlook中,VBA(Visual Basic for Applications)是一种强大的工具,可以让我们自动化日常的电子邮件管理任务,例如统计每个发件人发送的邮件数量。在本讲中,我们将深入探讨如何利用Outlook VBA实现这一功能。...
- `MailHelper`:发送邮件的功能,包括设置发件人、收件人、主题和内容。 这些工具类的使用大大简化了开发工作,减少了重复代码,提高了代码质量。通过学习和积累这些工具类,开发者可以更好地应对各种ASP.NET项目...
可以设置SMTP服务器、发件人、收件人、主题和正文,支持HTML格式的邮件和附件发送。 6. **各种进制间的轻松转换**:C#语言内置了转换方法,如Convert.ToInt32、ToString等,可以方便地在二进制、八进制、十进制和...
在VB.NET中实现电子邮件的发送和接收是一项常见的编程任务,主要涉及到SMTP(Simple Mail Transfer Protocol)和POP3(Post Office Protocol)协议。本教程将详细解释如何使用VB.NET进行电子邮件的处理。 首先,...
在C#编程中,邮件收发是一个常见的任务,通常我们会使用.NET Framework提供的System.Net.Mail命名空间或者第三方库如Jmail来实现。标题提到的问题“C#邮件收发,收件有点乱码”,这是一个典型的数据编码问题,可能...
在线发邮件系统是一种基于Web的通信工具,允许用户通过互联网发送和接收电子邮件,无需通过本地邮件客户端。在本文中,我们将深入探讨构建这样的系统所需的关键技术、原理和步骤,特别是针对使用ASP(Active Server ...
`MailMessage`对象则包含了邮件的基本信息,如发件人、收件人、主题和正文。 标签“邮件发送”和“阿里云”强调了这个话题的焦点,即在阿里云的私有网络环境下,使用C#进行邮件发送。对于初学者或在特定网络环境下...
它允许开发者配置SMTP服务器信息,设置邮件头部(如发件人、收件人、主题和正文),并添加附件。工具包可能提供了一种简单的方式来包装SmtpClient,添加额外的功能,如模板邮件、HTML邮件或群发邮件。 5. C#语言...
1. **活动(Activity)**:活动是工作流的基本构建块,可以表示一个简单的操作,如发送电子邮件,或者复杂的子工作流。 2. **工作流(Workflow)**:由一系列活动组成的序列,表示整个业务流程。 3. **宿主(Host)*...
标题中的“发邮件处理码源excel.zip”表明这是一个关于电子邮件自动化处理的代码资源,其中可能包含用于自动发送、接收或管理电子邮件的程序代码。描述中同样提到“发邮件处理码源excel”,暗示这个压缩包里的内容...
接下来,我们将讨论如何使用`System.Net.Mail`命名空间发送邮件。首先,设置邮件的基本信息: ```csharp using System.Net; using System.Net.Mail; // 邮件设置 var fromAddress = new MailAddress("sender@...
在C#中,你可以创建一个名为`CDOsendmail`的方法,初始化`CDO.Message`对象,设置发件人、收件人、主题和邮件内容。邮件内容可以是HTML格式,以提供更丰富的展示效果。接着,通过`CDO.IConfiguration`接口配置SMTP...
ViewState是ASP.NET页面状态管理的一种机制,它存储了控件的状态信息,以确保在页面回发时能够保持这些状态。然而,ViewState可能导致页面大小增加,影响加载速度。为了优化性能,ASP.NET允许我们对ViewState进行...