System.Net.Mail是微软自家提供的工具,在.net程序中可以使用该空间中的SmtpClient实例来实现邮件的发送。
使用System.Net.Mail空间与Web.config配置相配合,可以很方便的实现邮件发送。
首先,在Web.config文件中<system.net>节点中加入<mailSettings>标签,示例如下:
<system.net>
<mailSettings>
<smtp from="测试者<tester@testserver.com>">
<network host="smtp.ym.163.com" password="MyTestPassword" port="25"
userName="tester@testserver.com" enableSsl="false" defaultCredentials="false" />
</smtp>
</mailSettings>
</system.net>
接下来便是C#代码:(需要using System.Net.Mail;)
/// <summary>
/// 发送HTML邮件,有抄送和密送
/// 需要在Web.config文件中的system.net下的mailSettings节点进行配置
/// </summary>
/// <param name="mailto">收件人地址</param>
/// <param name="mailcc">抄送地址</param>
/// <param name="mailbcc">密送地址</param>
/// <param name="mailsubject">邮件主题</param>
/// <param name="mailbody">邮件正文</param>
public static void SendMail(string mailto, string mailcc, string mailbcc, string mailsubject, string mailbody)
{
MailMessage mMessage = new MailMessage();
MailAddress mTo = new MailAddress(mailto);
if (mailcc != "") { MailAddress mCC = new MailAddress(mailcc); mMessage.CC.Add(mCC); }
if (mailbcc != "") { MailAddress mBCC = new MailAddress(mailbcc); mMessage.Bcc.Add(mBCC); }
mMessage.To.Add(mTo);
mMessage.Subject = mailsubject;
//正文和主题的字符编码都设置为UTF8
mMessage.SubjectEncoding = System.Text.Encoding.UTF8;
mMessage.BodyEncoding = System.Text.Encoding.UTF8;
mMessage.Body = mailbody;
//正文支持html
mMessage.IsBodyHtml = true;
SmtpClient client = new SmtpClient();
client.Send(mMessage);
}
再接下来就可以在程序任意位置调用SendMail方法来实现发送邮件了:
SendMail("272023290@qq.com", "", "", "测试20140418-2", "<h1>你好,这是第二封测试邮件</h1>");
如果程序所使用的SMTP服务器不作特殊限制的话,你的收件箱就可以正常收到这封测试邮件了。
同时,由于我们在Web.config中设置的是“邮件测试者<tester@testserver.com>”,所以收到的邮件的发件人将会是“邮件测试者”。
本文结束。