C#发送邮件代码


 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 
posted @ 2008-10-22 17:14  NON-Fish  阅读(1131)  评论(2编辑  收藏  举报