C#发送邮件代码
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
1 using System;
2 using System.Net;
3 using System.Net.Mail;
4 using System.Net.Mime;
5 namespace Fish
6 {
7 /// <summary>
8 /// 发送邮件的类
9 /// </summary>
10 public class SendMail
11 {
12 private MailMessage mailMessage;
13 private SmtpClient smtpClient;
14 private string password;//发件人密码
15 /// <summary>
16 /// 处审核后类的实例
17 /// </summary>
18 /// <param name="To">收件人地址</param>
19 /// <param name="From">发件人地址</param>
20 /// <param name="Body">邮件正文</param>
21 /// <param name="Title">邮件的主题</param>
22 /// <param name="Password">发件人密码</param>
23 public SendMail(string To, string From, string Body, string Title, string
24 Password)
25 {
26 mailMessage = new MailMessage();
27 mailMessage.To.Add(To);
28 mailMessage.From = new System.Net.Mail.MailAddress(From);
29 mailMessage.Subject = Title;
30 mailMessage.Body = Body;
31 mailMessage.IsBodyHtml = true;
32 mailMessage.BodyEncoding = System.Text.Encoding.UTF8;
33 mailMessage.Priority = System.Net.Mail.MailPriority.Normal;
34 this.password = Password;
35 }
36 /// <summary>
37 /// 添加附件
38 /// </summary>
39 public void Attachments(string Path)
40 {
41 string[] path = Path.Split(',');
42 Attachment data;
43 ContentDisposition disposition;
44 for (int i = 0; i < path.Length; i++)
45 {
46 data = new Attachment(path[i], MediaTypeNames.Application.Octet);//实例化
47 附件
48 disposition = data.ContentDisposition;
49 disposition.CreationDate = System.IO.File.GetCreationTime(path[i]);//获取
50 附件的创建日期
51 disposition.ModificationDate = System.IO.File.GetLastWriteTime(path[i]);//
52 获取附件的修改日期
53 disposition.ReadDate = System.IO.File.GetLastAccessTime(path[i]);//获取附
54 件的读取日期
55 mailMessage.Attachments.Add(data);//添加到附件中
56 }
57 }
58 /// <summary>
59 /// 异步发送邮件
60 /// </summary>
61 /// <param name="CompletedMethod"></param>
62 public void SendAsync(SendCompletedEventHandler CompletedMethod)
63 {
64 if (mailMessage != null)
65 {
66 smtpClient = new SmtpClient();
67 smtpClient.Credentials = new System.Net.NetworkCredential
68 (mailMessage.From.Address, password);//设置发件人身份的票据
69 smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
70 smtpClient.Host = "smtp." + mailMessage.From.Host;
71 smtpClient.SendCompleted += new SendCompletedEventHandler
72 (CompletedMethod);//注册异步发送邮件完成时的事件
73 smtpClient.SendAsync(mailMessage, mailMessage.Body);
74 }
75 }
76 /// <summary>
77 /// 发送邮件
78 /// </summary>
79 public void Send()
80 {
81 if (mailMessage != null)
82 {
83 smtpClient = new SmtpClient();
84 smtpClient.Credentials = new System.Net.NetworkCredential
85 (mailMessage.From.Address, password);//设置发件人身份的票据
86 smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
87 smtpClient.Host = "smtp." + mailMessage.From.Host;
88 smtpClient.Send(mailMessage);
89 }
90 }
91 }
92