出自:http://www.cnblogs.com/yongheng178/archive/2010/05/11/1732937.html

通过.Net FrameWork 2.0下提供的“System.Net.Mail”可以轻松的实现,本文列举了3种途径来发送:
1.通过Localhost;
2.通过普通SMTP;
3.通过SSL的SMTP;

下面一个一个来说:
1.通过LocalHost
1public 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";
27object userState = msg;
28try
29...{
30 client.SendAsync(msg, userState);
31//简单一点儿可以client.Send(msg);
32 MessageBox.Show("发送成功");
33 }
34catch (System.Net.Mail.SmtpException ex)
35...{
36 MessageBox.Show(ex.Message, "发送邮件出错");
37 }
38 }
39
2.通过普通SMTP
1public 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";
29object userState = msg;
30try
31...{
32 client.SendAsync(msg, userState);
33//简单一点儿可以client.Send(msg);
34 MessageBox.Show("发送成功");
35 }
36catch (System.Net.Mail.SmtpException ex)
37...{
38 MessageBox.Show(ex.Message, "发送邮件出错");
39 }
40 }
41
上述方法不适用于所有SMTP,经测试zj.com可以,而smtp.163.com不行
3.通过SSL的SMTP
1public 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;
32try
33...{
34 client.SendAsync(msg, userState);
35//简单一点儿可以client.Send(msg);
36 MessageBox.Show("发送成功");
37 }
38catch (System.Net.Mail.SmtpException ex)
39...{
40 MessageBox.Show(ex.Message, "发送邮件出错");
41 }
42 }
43

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

转载于:https://www.cnblogs.com/sogo/archive/2010/05/12/1733537.html

C#中Emial发送方法相关推荐

  1. ashx 设置session、emial发送方法

    IRequiresSessionState 引用此 接口 #region /// <summary>     /// 发送邮件     /// </summary>     / ...

  2. java 邮件 附件_java中javamail发送带附件的邮件实现方法

    本文实例讲述了java中javamail发送带附件的邮件实现方法.分享给大家供大家参考.具体分析如下: JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口.它是Sun发布的用来处理em ...

  3. shell处理curl返回数据_linux shell中curl 发送post请求json格式问题的处理方法

    今天在linux中使用curl发送一个post请求时,带有json的数据,在发送时发现json中的变量没有解析出来 如下 curl -i -X POST -H 'Content-type':'appl ...

  4. 【EventBus】EventBus 源码解析 ( 事件发送 | 线程池中执行订阅方法 )

    文章目录 一.EventBus 中主线程支持类 二.EventBus 中 AsyncPoster 分析 三.AsyncPoster 线程池 Runnable 任务类 一.EventBus 中主线程支持 ...

  5. Php如何发出请求,PHP中如何发送HTTP请求?

    PHP中如何发送HTTP请求? 在 HTML上 提交参数 A 和 B 到 send.php中,在send.php中接收到传过来的参数 A 和 B 并将这2个参数以 http的形式发送给目标地址:一下是 ...

  6. 为什么不能在init和dealloc函数中使用accessor方法

    前言 为什么不要在init和dealloc方法中调用getter和setter: Apple在Mac与iOS中关于内存管理的开发文档中,有一节的题目为:"Don'tUse Accessor ...

  7. [置顶] C# 邮件发送方法【NetMail方式】

    在上一篇博文C# 邮件发送方法[webMail方式]中介绍了Webmail的邮件发送方式,现在介绍下C#中使用NetMail发送邮件的方式, 测试代码如下: /// <summary>   ...

  8. HttpServlet中的service方法

    HttpServlet中的service方法service方法是接口中的方法,servlet容器把所有请求发送到该方法,该方法默认行为是转发http请求到doXXX方法中,如果你重载了该方法,默认操作 ...

  9. as3 访问远程计算机,Flash AS3中数据发送与接收

    Flash AS3中数据发送与接收 互联网   发布时间:2008-10-06 01:24:53   作者:佚名   我要评论 先回顾一下as2中相关的解决办法 相信大部分人用的都是LoadVars类 ...

最新文章

  1. Nginx——反向代理
  2. 怎样获取网站的域名_搭建一个网站,通常的6大步骤你知道吗?
  3. 女黑客发现Firefox高危漏洞获奖4000美元
  4. python交互式编程入门先学什么_为什么 Python 对于编程入门学习来说,是一门很棒的语言...
  5. 前端工程化系列[03]-Grunt构建工具的运转机制
  6. 【转】刨根究底字符编码之十三——UTF-16编码方式
  7. HDU 1151 Air Raid
  8. jQuery 仿抖音时钟罗盘转动效果
  9. 修改某张表的结构_在T-SQL语言中,若要修改某张表的结构,应该使用的修改关键字是Alter。...
  10. 读《股票大作手操盘术》— 利弗莫尔操作法则
  11. 【目标检测】YOLOv1代码实现之TensorFlow
  12. STM32L010C6Tx的睡眠 按键唤醒和RTC Alarm闹钟唤醒
  13. tensorflow官网
  14. 宋分题——Java实现登录窗口 和 信息录入窗口
  15. YYT 0664 - 2008 医疗器械软件 软件生存周期过程
  16. 使用phpqrcode.php生成二维码并合并到背景图片上
  17. 教务系统—课程表接口信息
  18. 《语雀 IT 百科》发布了!
  19. 天道酬勤系列之抽象工厂模式介绍
  20. Oracle ERP 报表:类数字格式字符串数据的前置0被截取和被科学计数法表示

热门文章

  1. oracle查询语句之时间比较
  2. ASN1VE软件的安装和使用
  3. Python爬虫爬取《你好,李焕英》的豆瓣短评做成云图
  4. 北京化工大学计算机科专业,北京化工大学新高考选科要求-北京化工大学选科对应专业...
  5. 使用Pysot和MATLAB目标跟踪画对比图,标注框
  6. android 省电模式,android省电模式设置
  7. Greenplum数据库快速调优
  8. poweriso 红旗linux,iso是什么,怎么用?
  9. HHM(forward法求观察序列的概率)
  10. Kafka安全(以SASL+ACL为例)