博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#一个完整的电子邮件操作类
阅读量:6202 次
发布时间:2019-06-21

本文共 9764 字,大约阅读时间需要 32 分钟。

hot3.png

1     ///    2 /// 电子邮件操作类。   3 ///    4     public class Mail   5     {
6 /// 7 /// 初始化一个电子邮件操作类的空实例。 8 /// 9 public Mail() 10 {
11 } 12 /// 13 /// 初始化一个电子邮件操作类的实例。 14 /// 15 /// 发件人的电子邮件地址。 16 /// 发件人的姓名。 17 /// 收件人的电子邮件地址。 18 /// 收件人的姓名。 19 /// 电子邮件的主题。 20 /// 电子邮件的内容。 21 /// 电子邮件的服务器地址。 22 /// 电子邮件的主机端口号。 23 /// 登录电子邮件服务器的用户名。 24 /// 登录电子邮件服务器的用户密码。 25 /// 邮件的正文是否是HTML格式。 26 /// 邮件附件的文件路径。 27 public Mail(string from, string fromName, string recipient, string recipientName, string subject, string body, string host, int port, string username, string password, bool isBodyHtml, string filepath) 28 {
29 this._from = from; 30 this._fromName = fromName; 31 this._recipient = recipient; 32 this._recipientName = recipientName; 33 this._subject = subject; 34 this._body = body; 35 this._serverHost = host; 36 this._serverPort = port; 37 this._username = username; 38 this._password = password; 39 this._isBodyHtml = isBodyHtml; 40 this._attachment.Add(filepath); 41 } 42 /// 43 /// 初始化一个电子邮件操作类的实例。 44 /// 45 /// 发件人的电子邮件地址。 46 /// 发件人的姓名。 47 /// 收件人的电子邮件地址。 48 /// 收件人的姓名。 49 /// 电子邮件的主题。 50 /// 电子邮件的内容。 51 /// 电子邮件的服务器地址。 52 /// 电子邮件的主机端口号。 53 /// 登录电子邮件服务器的用户名。 54 /// 登录电子邮件服务器的用户密码。 55 /// 邮件的正文是否是HTML格式。 56 public Mail(string from, string fromName, string recipient, string recipientName, string subject, string body, string host, int port, string username, string password, bool isBodyHtml) 57 : this(from, fromName, recipient, recipientName, subject, body, host, 25, username, password, isBodyHtml, null) 58 {
59 } 60 61 /// 62 /// 初始化一个电子邮件操作类的实例。 63 /// 64 /// 发件人的电子邮件地址。 65 /// 发件人的姓名。 66 /// 收件人的电子邮件地址。 67 /// 收件人的姓名。 68 /// 电子邮件的主题。 69 /// 电子邮件的内容。 70 /// 电子邮件的服务器地址。 71 /// 电子邮件的主机端口号。 72 /// 登录电子邮件服务器的用户名。 73 /// 登录电子邮件服务器的用户密码。 74 /// 邮件的正文是否是HTML格式。 75 public Mail(string from, string fromName, string recipient, string recipientName, string subject, string body, string host, string username, string password) 76 : this(from, fromName, recipient, recipientName, subject, body, host, 25, username, password, false, null) 77 {
78 } 79 /// 80 /// 初始化一个电子邮件操作类的实例(邮件的正文非HTML格式,端口默认25)。 81 /// 82 /// 发件人的电子邮件地址。 83 /// 收件人的电子邮件地址。 84 /// 电子邮件的主题。 85 /// 电子邮件的内容。 86 /// 电子邮件的服务器地址。 87 /// 登录电子邮件服务器的用户名。 88 /// 登录电子邮件服务器的用户密码。 89 /// 邮件的正文是否是HTML格式。 90 public Mail(string from, string recipient, string subject, string body, string host, string username, string password) 91 : this(from, null, recipient, null, subject, body, host, 25, username, password, false, null) 92 {
93 } 94 /// 95 /// 初始化一个电子邮件操作类的实例(邮件的正文非HTML格式,端口默认25)。 96 /// 97 /// 发件人的电子邮件地址。 98 /// 收件人的电子邮件地址。 99 /// 电子邮件的主题。 100 /// 电子邮件的内容。 101 /// 电子邮件的主机端口号。 102 /// 电子邮件的服务器地址。 103 /// 登录电子邮件服务器的用户名。 104 /// 登录电子邮件服务器的用户密码。 105 public Mail(string from, string recipient, string subject, string body, string host, int port, string username, string password) 106 : this(from, null, recipient, null, subject, body, host, port, username, password, false, null) 107 {
108 } 109 110 private string _subject; 111 private string _body; 112 private string _from; 113 private string _fromName; 114 private string _recipientName; 115 private string _serverHost; 116 private int _serverPort; 117 private string _username; 118 private string _password; 119 private bool _isBodyHtml; 120 private string _recipient; 121 private List
_attachment = new List
{ }; 122 123 ///
124 /// 获取或设置邮件的主题。 125 /// 126 public string Subject 127 {
128 get { return this._subject; } 129 set { this._subject = value; } 130 } 131 132 ///
133 /// 获取或设置邮件的正文内容。 134 /// 135 public string Body 136 {
137 get { return this._body; } 138 set { this._body = value; } 139 } 140 141 ///
142 /// 获取或设置发件人的邮件地址。 143 /// 144 public string From 145 {
146 get { return this._from; } 147 set { this._from = value; } 148 } 149 150 ///
151 /// 获取或设置发件人的姓名。 152 /// 153 public string FromName 154 {
155 get { return this._fromName; } 156 set { this._fromName = value; } 157 } 158 159 ///
160 /// 获取或设置收件人的姓名。 161 /// 162 public string RecipientName 163 {
164 get { return this._recipientName; } 165 set { this._recipientName = value; } 166 } 167 168 ///
169 /// 获取或设置收件人的邮件地址。 170 /// 171 public string Recipient 172 {
173 get { return this._recipient; } 174 set { this._recipient = value; } 175 } 176 177 ///
178 /// 获取或设置邮件服务器主机地址。 179 /// 180 public string ServerHost 181 {
182 get { return this._serverHost; } 183 set { this._serverHost = value; } 184 } 185 186 ///
187 /// 获取或设置邮件服务器的端口号。 188 /// 189 public int ServerPort 190 {
191 set { this._serverPort = value; } 192 get { return this._serverPort; } 193 } 194 195 196 ///
197 /// 获取或设置SMTP认证时使用的用户名。 198 /// 199 public string Username 200 {
201 get { return this._username; } 202 set 203 {
204 if (value.Trim() != "") 205 {
206 this._username = value.Trim(); 207 } 208 else 209 {
210 this._username = ""; 211 } 212 } 213 } 214 215 ///
216 /// 获取或设置SMTP认证时使用的密码。 217 /// 218 public string Password 219 {
220 set { this._password = value; } 221 get { return this._password; } 222 } 223 224 ///
225 /// 获取或设置指示邮件正文是否为 Html 格式的值。 226 /// 227 public bool IsBodyHtml 228 {
229 get { return this._isBodyHtml; } 230 set { this._isBodyHtml = value; } 231 } 232 233 ///
234 /// 获取电子邮件附件。 235 /// 236 public List
Attachment 237 {
238 get { return this._attachment; } 239 set { this._attachment = value; } 240 } 241 242 /////
243 ///// 添加一个收件人的邮箱地址。 244 ///// 245 /////
联系人列表。 246 /////
247 //public bool AddRecipient(params string[] mailList) 248 //{
249 // this.Recipient = mailList[0].Trim(); 250 // return true; 251 //} 252 253 ///
254 /// 添加电子邮件附件。 255 /// 256 ///
文件列表。 257 ///
是否添加成功。
258 public bool AddAttachment(params string[] fileList) 259 {
260 if (fileList.Length > 0) 261 {
262 foreach (string file in fileList) 263 {
264 if (file != null) 265 {
266 this._attachment.Add(file); 267 } 268 else 269 {
270 return false; 271 } 272 } 273 return true; 274 } 275 else 276 {
277 return false; 278 } 279 } 280 ///
281 /// 发送电子邮件。 282 /// 283 ///
是否发送成功。
284 public bool Send() 285 {
286 //初始化 MailMessage 对象。 287 MailMessage mail = new MailMessage(); 288 Encoding encoding = Encoding.GetEncoding("utf-8"); 289 mail.From = new MailAddress(this.From, this.FromName, encoding); 290 mail.To.Add(new MailAddress(this.Recipient, this.RecipientName)); 291 mail.Subject = this.Subject; 292 mail.IsBodyHtml = this.IsBodyHtml; 293 mail.Body = this.Body; 294 mail.Priority = MailPriority.Normal; 295 mail.BodyEncoding = encoding; 296 if (this.Attachment.Count > 0) 297 {
298 foreach (string file in this.Attachment) 299 {
300 mail.Attachments.Add(new Attachment(file)); 301 } 302 } 303 //初始化 SmtpClient 对象。 304 SmtpClient smtp = new SmtpClient(); 305 smtp.Host = this.ServerHost; 306 smtp.Port = this.ServerPort; 307 smtp.Credentials = new NetworkCredential(this.Username, this.Password); 308 if (smtp.Port != 25) 309 {
310 smtp.EnableSsl = true; 311 } 312 try 313 {
314 smtp.Send(mail); 315 } 316 catch (SmtpException ex) 317 {
318 string message = ex.Message; 319 return false; 320 } 321 return true; 322 } 323 }

 

转载于:https://my.oschina.net/weisenz/blog/200647

你可能感兴趣的文章
下MFC中对象、句柄、ID之间的区别.
查看>>
如何构建Win32汇编的编程环境(ONEPROBLEM个人推荐)
查看>>
Asp.Net MVC 分页、检索、排序整体实现
查看>>
Flymeos插桩适配教程
查看>>
还在用PS磨皮去皱?看看如何用神经网络高度还原你的年轻容貌!
查看>>
大端模式与小端模式、网络字节顺序与主机字节顺序
查看>>
微信支付申请90%的商户都卡在这儿了,申请微信支付,商户功能设置详细说明...
查看>>
制作一款微信表情
查看>>
高仿Instagram 页面效果android特效
查看>>
我的友情链接
查看>>
Juniper 基于路由的×××
查看>>
HDU - 2018 - 母牛的故事(dp)
查看>>
基于matlab的fft变换中参数的设置
查看>>
如何查找JSP页面中的错误
查看>>
2016 年总结
查看>>
Python学习开始
查看>>
Android应用程序消息处理机制(Looper、Handler)分析(4)
查看>>
C++ 类成员的构造和析构顺序
查看>>
将String转化成Stream,将Stream转换成String
查看>>
java路径Java开发中获得非Web项目的当前项目路径
查看>>