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

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

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

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

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

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

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

C# XML解析XML解析方法

2009-08-28 12:31:06

C#静态方法

2009-02-20 09:50:29

C#方法重载编程

2009-09-09 14:20:18

C# XML解析XML解析方法

2009-09-02 16:21:02

C#解析Html

2024-09-23 12:10:00

C#MAC代码

2009-09-03 17:40:25

C#发送短信

2011-08-02 11:30:41

iOS开发 邮件发送

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 18:00:54

C# Main方法

2009-09-04 11:19:40

C#数字格式化

2009-09-01 14:18:09

C#打开Excel文档
点赞
收藏

51CTO技术栈公众号