ASP.NET 的System.Net.Mail 类库里所提供邮件发送的对象、属性和方法。此类库中有三个类:SmtpClient、MailMessage和Attachment。
用ASP.NET 邮件发送程序的主要思路为:首先得到SMTP 服务器地址,有两种方法:第一种方法调用目前知名的邮件服务提供商的SMTP,比如新浪、搜狐、网易的免费电子邮箱的SMTP;第二种方法是自己装一个SMTP 虚拟服务器, 这个在安装IIS 时一起装上去的。以下分别讲述利用第一种方法编写邮件发送的程序。
利用知名的邮件服务提供商的SMTP来发送邮件,假设你有一个网易的邮箱(kiss123@163.com),用户名是kiss123,密码是123,网易邮件站点的SMTP服务器地址是:smtp.163.com。如果向123456789@qq.com 发送邮件,则利用ASP.NET(C#)发送邮件的核心代码如下:
- using System;
- using System.Data;
- using System.Configuration;
- using System.Web.Security;
- using System.Net.Mail;
- using System.Net;
- using System.Net.Mime;
- /// <summary>
- /// Email 的摘要说明
- /// 发送邮件的类
- /// </summary>
- public class Email
- {
- public Email()
- {
- //
- // TODO: 在此处添加构造函数逻辑
- //
- }
- /// <summary>
- /// <param name="from">发送方的邮箱地址</param>
- /// <param name="pwd">发送方的邮箱密码</param>
- /// <param name="to">接收方的邮箱地址</param>
- /// <param name="title">邮件主题</param>
- /// <param name="body">邮件内容</param>
- /// <param name="server">发送邮件服务器</param>
- /// <param name="files">附件</param>
- /// </summary>
- //这里from=kiss123@163.com,pwd=123,to=123456789@qq.com,server=smtp.163.com
- public static void SendByFile(string from, string pwd, string to, string title, string body, string server, string files)
- {
- string file = files;//取得附件路径
- MailMessage message = new MailMessage(from, to, title, body);//创建邮件消息对象
- SmtpClient client = new SmtpClient(server);
- //验证:发送方的邮箱和密码
- client.Credentials = new System.Net.NetworkCredential(from, pwd);
- if (file != "")//如果附件内容不为空,取得文件信息
- {
- Attachment data = new Attachment(file, MediaTypeNames.Application.Octet);
- //发送文件的信息
- ContentDisposition dp = data.ContentDisposition;
- dp.CreationDate = System.IO.File.GetCreationTime(file);//附件创建日期
- dp.ModificationDate = System.IO.File.GetLastWriteTime(file);//附件修改日期
- dp.ReadDate = System.IO.File.GetLastAccessTime(file);//附件读取日期
- message.Attachments.Add(data);//附加到电子邮件的附件集合
- client.Send(message);
- data.Dispose();
- }
- else
- client.Send(message);
- }
- }