1 public class MySerialObject
2 {
3 //发送者邮件地址
4 private string _form;
5 //发送者邮件密码
6 private string _fromPwd;
7 //接受者邮件
8 private string _to;
9 //抄送者
10 private string _cc;
11 //附件路径
12 private string _attachment;
13 //发送者邮件的smtp服务器主机名
14 private string _smtpHost;
15 //邮件主题
16 private string _subject;
17 //邮件正文
18 private string _body;
19 //是否识别为html格式
20 private bool _isHtmlStyle;
21
22 public bool IsHtmlStyle
23 {
24 get { return _isHtmlStyle; }
25 set { _isHtmlStyle = value; }
26 }
27 public string Body
28 {
29 get { return _body; }
30 set { _body = value; }
31 }
32 public string Subject
33 {
34 get { return _subject; }
35 set { _subject = value; }
36 }
37 public string SmtpHost
38 {
39 get { return _smtpHost; }
40 set { _smtpHost = value; }
41 }
42 public string Attachment
43 {
44 get { return _attachment; }
45 set { _attachment = value; }
46 }
47 public string Cc
48 {
49 get { return _cc; }
50 set { _cc = value; }
51 }
52 public string To
53 {
54 get { return _to; }
55 set { _to = value; }
56 }
57 public string FormPwd
58 {
59 get { return _fromPwd; }
60 set { _fromPwd = value; }
61 }
62 public string Form
63 {
64 get { return _form; }
65 set { _form = value; }
66 }
67
68 public MySerialObject(string form, string fromPwd, string to, string cc, string attachments, string smtpHost, string subject, string body)
69 {
70 _form = form;
71 _fromPwd = fromPwd;
72 _to = to;
73 _cc = cc;
74 _attachment = attachments;
75 _smtpHost = smtpHost;
76 _subject = subject;
77 _body = body;
78 }
79 public MySerialObject()
80 {
81
82 }
83 public bool SendMail()
84 {
85 List<MailAddress> mailaddrs = new List<MailAddress>();
86 if (_cc != null && _cc != "")
87 {
88 foreach (var item in _cc.Split(','))
89 {
90 MailAddress mailaddr = new MailAddress(item);
91 mailaddrs.Add(mailaddr);
92 }
93 }
94 List<Attachment> attachments = new List<Attachment>();
95 if (_attachment != null & _attachment != "")
96 {
97 foreach (var item in _attachment.Split(','))
98 {
99 Attachment att = new Attachment(item);
100 //MIME协议下的一个对象,用以设置附件的创建时间,修改时间以及读取时间
101 //System.Net.Mime.ContentDisposition disposition = att.ContentDisposition;
102 //disposition.CreationDate = System.IO.File.GetCreationTime(file);
103 //disposition.ModificationDate = System.IO.File.GetLastWriteTime(file);
104 //disposition.ReadDate = System.IO.File.GetLastAccessTime(file);
105 attachments.Add(att);
106 }
107 }
108 return SendMail(_form, _fromPwd, _to, _smtpHost, _subject, _body);
109 }
110 /// <summary>
111 /// 发送邮件,返回true表示发送成功
112 /// </summary>
113 /// <param name="form">发件人邮箱地址;发件人用户名</param>
114 /// <param name="fromPwd">密码</param>
115 /// <param name="to">接受者邮箱地址</param>
116 /// <param name="smtpHost">服务器的主机名</param>
117 /// <param name="subject">邮件主题行</param>
118 /// <param name="body">邮件主体正文</param>
119 /// <returns></returns>
120 private bool SendMail(string form, string fromPwd, string to, string smtpHost, string subject, string body)
121 {
122 System.Net.Mail.SmtpClient client = new SmtpClient();
123 client.Host = smtpHost;
124 client.UseDefaultCredentials = true;
125 client.Credentials = new System.Net.NetworkCredential(form, fromPwd);
126 client.DeliveryMethod = SmtpDeliveryMethod.Network;
127
128 try
129 {
130 System.Net.Mail.MailMessage message = new MailMessage(form, to);
131 message.Subject = subject;
132 message.Body = body;
133 message.BodyEncoding = System.Text.Encoding.UTF8;
134 message.IsBodyHtml = true;
135 client.Send(message);
136 return true;
137 }
138 catch (Exception)
139 {
140 //wirte log
141 return false;
142 }
143 }
144 /// <summary>
145 /// 发送邮件,带抄送者,返回true表示发送成功
146 /// </summary>
147 /// <param name="form">发件人邮箱地址;发件人用户名</param>
148 /// <param name="fromPwd">密码</param>
149 /// <param name="to">接受者邮箱地址</param>
150 /// <param name="cc">抄送者邮箱地址</param>
151 /// <param name="smtpHost">服务器的主机名</param>
152 /// <param name="subject">邮件主题行</param>
153 /// <param name="body">邮件主体正文</param>
154 /// <returns></returns>
155 private bool SendMail(string form, string fromPwd, string to, string cc, string smtpHost, string subject, string body)
156 {
157 System.Net.Mail.SmtpClient client = new SmtpClient();
158 client.Host = smtpHost;
159 client.UseDefaultCredentials = true;
160
161 client.Credentials = new System.Net.NetworkCredential(form, fromPwd);
162 client.DeliveryMethod = SmtpDeliveryMethod.Network;
163
164 try
165 {
166 System.Net.Mail.MailMessage message = new MailMessage(form, to);
167 message.Subject = subject;
168 message.CC.Add(cc);
169 message.Body = body;
170 message.BodyEncoding = System.Text.Encoding.UTF8;
171 message.IsBodyHtml = true;
172 client.Send(message);
173 return true;
174 }
175 catch (Exception)
176 {
177 //write log
178 return false;
179 }
180 }
181
182 /// <summary>
183 /// 发送邮件,带抄送者,带附件,返回true表示发送成功
184 /// </summary>
185 /// <param name="form">发件人邮箱地址;发件人用户名</param>
186 /// <param name="fromPwd">密码</param>
187 /// <param name="to">接受者邮箱地址</param>
188 /// <param name="cc">抄送者邮箱地址</param>
189 /// <param name="smtpHost">服务器的主机名</param>
190 /// <param name="subject">邮件主题行</param>
191 /// <param name="body">邮件主体正文</param>
192 /// <param name="attachments">附件</param>
193 /// <returns></returns>
194 private bool SendMail(string form, string fromPwd, string to, List<MailAddress> cc, string smtpHost, string subject, string body, List<Attachment> attachments)
195 {
196 System.Net.Mail.SmtpClient client = new SmtpClient();
197 client.Host = smtpHost;
198 client.UseDefaultCredentials = true;
199
200 client.Credentials = new System.Net.NetworkCredential(form, fromPwd);
201 client.DeliveryMethod = SmtpDeliveryMethod.Network;
202
203 try
204 {
205 System.Net.Mail.MailMessage message = new MailMessage(form, to);
206 message.Subject = subject;
207 foreach (var ccItem in cc)
208 {
209 message.CC.Add(ccItem);
210 }
211 foreach (var attItem in attachments)
212 {
213 message.Attachments.Add(attItem);
214 }
215 message.Body = body;
216 message.BodyEncoding = System.Text.Encoding.UTF8;
217 message.IsBodyHtml = _isHtmlStyle;
218 client.Send(message);
219 return true;
220 }
221 catch (Exception)
222 {
223 //write log
224 return false;
225 }
226 }
227 }