using System;
using System.Collections.Generic;
using System.Web;
using System.Net.Mail;
using System.Text;
/// <summary>
///发送邮件类
/// </summary>
public class SmtpMail
{
/// <summary>
/// 发送邮件的方法(发送单个收件人)
/// </summary>
/// <param name="fromMail">源邮件地址</param>
/// <param name="toMail">目的邮件地址</param>
/// <param name="loginName">用户名</param>
/// <param name="pass">密码</param>
/// <param name="title">发送邮件的标题</param>
/// <param name="content">发送邮件的内容</param>
public void SendMail(string fromMail, string toMail, string loginName, string pass, string title, string content)
{
MailMessage mailMessage = new MailMessage();
SmtpClient client = new SmtpClient();
//发件人邮箱地址
mailMessage.From = new MailAddress(fromMail);
//收件人邮箱地址
mailMessage.To.Add(new MailAddress(toMail));
//邮件标题编码
mailMessage.SubjectEncoding = Encoding.UTF8;
//邮件主题
mailMessage.Subject = title;
//邮件内容
mailMessage.Body = content;
//邮件内容编码
mailMessage.BodyEncoding = Encoding.UTF8;
//设置正文内容是否是包含Html的格式
mailMessage.IsBodyHtml = true;
//发送邮件的优先等级(有效值为High,Low,Normal)
mailMessage.Priority = MailPriority.Normal;
//指定发送邮件的服务器地址或IP
client.Host = @"smtp.163.com"; //固定写
//client.Host = "smtp." + mailMessage.From.Host;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.SendCompleted += new SendCompletedEventHandler(client_SendCompleted);
//指定登录服务器的用户名和密码
client.Credentials = new System.Net.NetworkCredential(loginName, pass);
//发送邮件
//client.Send(mailMessage); //同步发送
client.SendAsync(mailMessage, mailMessage.To); //异步发送 (异步发送时页面上要加上Async="true" )
}
void client_SendCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
SmtpClient m = (SmtpClient)sender;
string s = (string)e.UserState;
if (e.Cancelled)
{
System.Web.HttpContext.Current.Response.Write("<script>alert('Sending of email message was cancelled.');</script>");
}
if (e.Error == null)
{
System.Web.HttpContext.Current.Response.Write("<script>alert('Mail sent successfully');</script>");
}
else
{
System.Web.HttpContext.Current.Response.Write("<script>alert('Error occured, info=" + e.Error.Message + "');</script>");
}
}
}
有一点疑问 异步发送怎么根据发送状态来操作数据库 。。。。。。。。。???