c#发送邮件的一个类,可以使用。
class SendMail
{
private MailMessage mailMessage;
private SmtpClient smtpClient;
private string password;//发件人密码
private string host;//主机
private int port;//端口
private bool ssl;
/// <summary>
/// 发送邮件对象
/// </summary>
/// <param name="From">发件人</param>
/// <param name="To">收件人</param>
/// <param name="Title">主题</param>
/// <param name="Body">内容</param>
/// <param name="Path">附件地址</param>
/// <param name="Host">主机</param>
/// <param name="Port">端口</param>
/// <param name="Password">密码</param>
public SendMail(string From, List<string> To, string Title, string Body, List<string> Path, string Host, int Port, string Password, bool Ssl)
{
mailMessage = new MailMessage();
//收件人
for (int i = 0; i < To.Count; i++)
{
mailMessage.To.Add(To[i]);
}
//发件人
mailMessage.From = new System.Net.Mail.MailAddress(From);
//标题
mailMessage.Subject = Title;
//内容
mailMessage.Body = Body;
mailMessage.IsBodyHtml = true;
mailMessage.BodyEncoding = System.Text.Encoding.UTF8;
mailMessage.Priority = System.Net.Mail.MailPriority.Normal;
//添加附件
for (int i = 0; i < Path.Count; i++)
{
Attachment data = new Attachment(Path[i], MediaTypeNames.Application.Octet);//实例化附件
mailMessage.Attachments.Add(data);//添加附件
}
this.password = Password;
this.host = Host;
this.port = Port;
this.ssl = Ssl;
}
/// <summary>
/// 异步发送邮件
/// </summary>
/// <param name="CompletedMethod"></param>
public void SendAsync(SendCompletedEventHandler CompletedMethod)
{
if (mailMessage != null)
{
smtpClient = new SmtpClient();
smtpClient.Credentials = new System.Net.NetworkCredential(mailMessage.From.Address, password);//设置发件人身份的票据
smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
smtpClient.EnableSsl = ssl;
smtpClient.Host = this.host;
smtpClient.Port = this.port;
smtpClient.SendCompleted += new SendCompletedEventHandler(CompletedMethod);//注册异步发送邮件完成时的事件
smtpClient.SendAsync(mailMessage, mailMessage.Body);
}
}
/// <summary>
/// 发送邮件
/// </summary>
public void Send()
{
if (mailMessage != null)
{
smtpClient = new SmtpClient();
smtpClient.Credentials = new System.Net.NetworkCredential(mailMessage.From.Address, password);//设置发件人身份的票据
smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
smtpClient.EnableSsl = ssl;
smtpClient.Host = host;
smtpClient.Port = port;
smtpClient.Send(mailMessage);
}
}
}