C#发送Email邮件的方法解析

开发 后端
本文介绍了C#发送Email邮件的三种方法,即通过Localhost,通过普通SMTP,通过SSL的SMTP。
C#发送Email邮件方法之一:通过LocalHost 

  1. public void SendMailLocalhost()   
  2.  ...{   
  3.  System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();   
  4.  msg.To.Add("a@a.com");   
  5.  msg.To.Add("b@b.com");   
  6.  /**//*   
  7.  * msg.To.Add("b@b.com");   
  8.  * msg.To.Add("b@b.com");   
  9.  * msg.To.Add("b@b.com");可以发送给多人   
  10.  */   
  11. msg.CC.Add("c@c.com");   
  12.  /**//*   
  13.  * msg.CC.Add("c@c.com");   
  14.  * msg.CC.Add("c@c.com");可以抄送给多人   
  15.  */   
  16.  msg.From = new MailAddress("a@a.com""AlphaWu", System.Text.Encoding.UTF8);   
  17.  /**//* 上面3个参数分别是发件人地址(可以随便写),发件人姓名,编码*/   
  18.  msg.Subject = "这是测试邮件";//邮件标题   
  19.  msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码   
  20.  msg.Body = "邮件内容";//邮件内容   
  21.  msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码   
  22.  msg.IsBodyHtml = false;//是否是HTML邮件   
  23.  msg.Priority = MailPriority.High;//邮件优先级   
  24.    
  25.  SmtpClient client = new SmtpClient();   
  26.  client.Host = "localhost";   
  27.  object userState = msg;   
  28.  try   
  29.  ...{   
  30.  client.SendAsync(msg, userState);   
  31.  //简单一点儿可以client.Send(msg);   
  32.  MessageBox.Show("发送成功");   
  33.  }   
  34.  catch (System.Net.Mail.SmtpException ex)   
  35.  ...{   
  36.  MessageBox.Show(ex.Message, "发送邮件出错");   
  37.  }   
  38.  }  

C#发送Email邮件方法之二:通过普通SMTP 

  1. public void SendMailUseZj()   
  2.  ...{   
  3.  System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();   
  4.  msg.To.Add("a@a.com");   
  5.  msg.To.Add("b@b.com");   
  6.  /**//*   
  7.  * msg.To.Add("b@b.com");   
  8.  * msg.To.Add("b@b.com");   
  9.  * msg.To.Add("b@b.com");可以发送给多人   
  10.  */   
  11.  msg.CC.Add("c@c.com");   
  12.  /**//*   
  13.  * msg.CC.Add("c@c.com");   
  14.  * msg.CC.Add("c@c.com");可以抄送给多人   
  15.  */   
  16.  msg.From = new MailAddress("a@a.com""AlphaWu", System.Text.Encoding.UTF8);   
  17.  /**//* 上面3个参数分别是发件人地址(可以随便写),发件人姓名,编码*/   
  18.  msg.Subject = "这是测试邮件";//邮件标题   
  19.  msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码   
  20.  msg.Body = "邮件内容";//邮件内容   
  21.  msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码   
  22.  msg.IsBodyHtml = false;//是否是HTML邮件   
  23.  msg.Priority = MailPriority.High;//邮件优先级   
  24.    
  25.  SmtpClient client = new SmtpClient();   
  26.  client.Credentials = new System.Net.NetworkCredential("username@zj.com""userpass");   
  27.  //在zj.com注册的邮箱和密码   
  28.  client.Host = "smtp.zj.com";   
  29.  object userState = msg;   
  30.  try   
  31.  ...{   
  32.  client.SendAsync(msg, userState);   
  33.  //简单一点儿可以client.Send(msg);   
  34.  MessageBox.Show("发送成功");   
  35.  }   
  36.  catch (System.Net.Mail.SmtpException ex)   
  37.  ...{   
  38.  MessageBox.Show(ex.Message, "发送邮件出错");   
  39.  }   
  40.  }  
上述方法不适用于所有SMTP,经测试zj.com可以,而smtp.163.com不行 

C#发送Email邮件方法之三:通过SSL的SMTP 

  1. public void SendMailUseGmail()   
  2.  ...{   
  3.  System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();   
  4.  msg.To.Add("a@a.com");   
  5.  msg.To.Add("b@b.com");   
  6.  /**//*   
  7.  * msg.To.Add("b@b.com");   
  8.  * msg.To.Add("b@b.com");   
  9.  * msg.To.Add("b@b.com");可以发送给多人   
  10.  */   
  11.  msg.CC.Add("c@c.com");   
  12.  /**//*   
  13.  * msg.CC.Add("c@c.com");   
  14.  * msg.CC.Add("c@c.com");可以抄送给多人   
  15.  */   
  16.  msg.From = new MailAddress("a@a.com""AlphaWu", System.Text.Encoding.UTF8);   
  17.  /**//* 上面3个参数分别是发件人地址(可以随便写),发件人姓名,编码*/   
  18.  msg.Subject = "这是测试邮件";//邮件标题   
  19.  msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码   
  20.  msg.Body = "邮件内容";//邮件内容   
  21.  msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码   
  22.  msg.IsBodyHtml = false;//是否是HTML邮件   
  23.  msg.Priority = MailPriority.High;//邮件优先级   
  24.    
  25.  SmtpClient client = new SmtpClient();   
  26.  client.Credentials = new System.Net.NetworkCredential("username@gmail.com""password");   
  27.  //上述写你的GMail邮箱和密码   
  28.  client.Port = 587;//Gmail使用的端口   
  29.  client.Host = "smtp.gmail.com";   
  30.  client.EnableSsl = true;//经过ssl加密   
  31.  object userState = msg;   
  32.  try   
  33.  ...{   
  34.  client.SendAsync(msg, userState);   
  35.  //简单一点儿可以client.Send(msg);   
  36.  MessageBox.Show("发送成功");   
  37.  }   
  38.  catch (System.Net.Mail.SmtpException ex)   
  39.  ...{   
  40.  MessageBox.Show(ex.Message, "发送邮件出错");   
  41.  }   
  42.  }  
通过Gmail来发送邮件,成功率极高,几乎都可以发到,推荐使用。 

【编辑推荐】

  1. WebBrowser控件的常用方法、属性和事件
  2. C#动态生成Word文档并填充数据
  3. C#动态调用Web服务的3种方法
  4. 服务器+客户端的聊天程序
  5. C#类与对象的区别
责任编辑:book05 来源: Linux联盟
相关推荐

2009-09-03 17:23:45

C#发送邮件

2009-08-05 17:06:39

ASP调用C# DLL

2009-08-07 09:35:40

Oracle发送Ema

2009-09-03 17:31:34

C#发送邮件

2009-09-03 17:10:57

2009-08-28 12:31:06

C#静态方法

2009-09-09 14:04:18

C# XML解析XML解析方法

2009-02-20 09:50:29

C#方法重载编程

2011-08-02 11:30:41

iOS开发 邮件发送

2024-09-23 12:10:00

C#MAC代码

2009-09-02 16:21:02

C#解析Html

2009-09-09 14:20:18

C# XML解析XML解析方法

2009-09-03 17:40:25

C#发送短信

2009-12-09 15:23:36

PHP mail()函

2015-12-08 09:16:32

JavaMail邮件发送总结

2011-03-29 14:44:26

Zabbixemail

2011-04-01 16:52:29

zabbixemail

2009-09-04 11:19:40

C#数字格式化

2009-09-04 18:00:54

C# Main方法

2010-01-06 15:43:22

.Net Framew
点赞
收藏

51CTO技术栈公众号