C#发送邮件三种方法,Localhost,SMTP,SSL-SMTP 
通过.Net FrameWork 2.0下提供的“System.Net.Mail”可以轻松的实现,本文列举了3种途径来发送:

1.通过Localhost; 
2.通过普通SMTP; 
3.通过SSL的SMTP;

下面一个一个来说:

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

2.通过普通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. SmtpClient client = new SmtpClient();
  25. client.Credentials = new System.Net.NetworkCredential("username@zj.com", "userpass");
  26. //在zj.com注册的邮箱和密码
  27. client.Host = "smtp.zj.com";
  28. object userState = msg;
  29. try
  30. {
  31. client.SendAsync(msg, userState);
  32. //简单一点儿可以client.Send(msg);
  33. MessageBox.Show("发送成功");
  34. }
  35. catch (System.Net.Mail.SmtpException ex)
  36. {
  37. MessageBox.Show(ex.Message, "发送邮件出错");
  38. }
  39. }
  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. SmtpClient client = new SmtpClient();
  25. client.Credentials = new System.Net.NetworkCredential("username@zj.com", "userpass");
  26. //在zj.com注册的邮箱和密码
  27. client.Host = "smtp.zj.com";
  28. object userState = msg;
  29. try
  30. {
  31. client.SendAsync(msg, userState);
  32. //简单一点儿可以client.Send(msg);
  33. MessageBox.Show("发送成功");
  34. }
  35. catch (System.Net.Mail.SmtpException ex)
  36. {
  37. MessageBox.Show(ex.Message, "发送邮件出错");
  38. }
  39. }
  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. SmtpClient client = new SmtpClient();
  25. client.Credentials = new System.Net.NetworkCredential("username@zj.com", "userpass");
  26. //在zj.com注册的邮箱和密码
  27. client.Host = "smtp.zj.com";
  28. object userState = msg;
  29. try
  30. {
  31. client.SendAsync(msg, userState);
  32. //简单一点儿可以client.Send(msg);
  33. MessageBox.Show("发送成功");
  34. }
  35. catch (System.Net.Mail.SmtpException ex)
  36. {
  37. MessageBox.Show(ex.Message, "发送邮件出错");
  38. }
  39. }

上述方法不适用于所有SMTP,经测试zj.com可以,而smtp.163.com不行

3.通过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. SmtpClient client = new SmtpClient();
  25. client.Credentials = new System.Net.NetworkCredential("username@gmail.com", "password");
  26. //上述写你的GMail邮箱和密码
  27. client.Port = 587;//Gmail使用的端口
  28. client.Host = "smtp.gmail.com";
  29. client.EnableSsl = true;//经过ssl加密
  30. object userState = msg;
  31. try
  32. {
  33. client.SendAsync(msg, userState);
  34. //简单一点儿可以client.Send(msg);
  35. MessageBox.Show("发送成功");
  36. }
  37. catch (System.Net.Mail.SmtpException ex)
  38. {
  39. MessageBox.Show(ex.Message, "发送邮件出错");
  40. }
  41. }
  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. SmtpClient client = new SmtpClient();
  25. client.Credentials = new System.Net.NetworkCredential("username@gmail.com", "password");
  26. //上述写你的GMail邮箱和密码
  27. client.Port = 587;//Gmail使用的端口
  28. client.Host = "smtp.gmail.com";
  29. client.EnableSsl = true;//经过ssl加密
  30. object userState = msg;
  31. try
  32. {
  33. client.SendAsync(msg, userState);
  34. //简单一点儿可以client.Send(msg);
  35. MessageBox.Show("发送成功");
  36. }
  37. catch (System.Net.Mail.SmtpException ex)
  38. {
  39. MessageBox.Show(ex.Message, "发送邮件出错");
  40. }
  41. }
  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. SmtpClient client = new SmtpClient();
  25. client.Credentials = new System.Net.NetworkCredential("username@gmail.com", "password");
  26. //上述写你的GMail邮箱和密码
  27. client.Port = 587;//Gmail使用的端口
  28. client.Host = "smtp.gmail.com";
  29. client.EnableSsl = true;//经过ssl加密
  30. object userState = msg;
  31. try
  32. {
  33. client.SendAsync(msg, userState);
  34. //简单一点儿可以client.Send(msg);
  35. MessageBox.Show("发送成功");
  36. }
  37. catch (System.Net.Mail.SmtpException ex)
  38. {
  39. MessageBox.Show(ex.Message, "发送邮件出错");
  40. }
  41. }

通过Gmail来发送邮件,成功率极高,几乎都可以发到,推荐使用。

最新文章

  1. python常用模块
  2. Linux网络编程系列-TCP编程实例
  3. H5-考试判断题
  4. view, surfaceView, invalidate, postInvalidate, 刷新屏幕
  5. Apache Spark GraphX的特点
  6. 安装Wamp后 Apache无法启动的解决方法
  7. Tourists
  8. Python第五章__模块介绍,常用内置模块
  9. DirectFB 之 通过多Window实现多元素处理
  10. Unity塔防游戏开发
  11. jsMath对象
  12. Scrapy爬虫框架的学习
  13. c#实战开发:以太坊钱包对接私链 (二)
  14. eclipse 注销和取消注销
  15. [转帖] k8s dashboard 的创建 升级 以及 admin token的创建和简单使用.
  16. 玩转Eclipse — 自动代码生成的Java Code Template
  17. Jsp重定向(response.sendRedirect())和转发(request.getRequestDispatcher().forward(request,r)的差别
  18. Linux基础命令---sort
  19. 40. Linux下7-zip解压到当前目录的命令
  20. TCP状态统计 - 脚本命令

热门文章

  1. Java实现获取一个随机的两位数
  2. BN系列-未完待续
  3. C#LeetCode刷题之#557-反转字符串中的单词 III(Reverse Words in a String III)
  4. ES读写流程
  5. Vulnhub篇Photographerr
  6. for循环的插入元素
  7. 【SDOI2009】 HH的项链 - 莫队
  8. Redis设计与实现——单机数据库的实现
  9. Qt开发技术:QCharts(三)QCharts样条曲线图介绍、Demo以及代码详解
  10. Jmeter 常用函数(23)- 详解 __longSum