C#发送邮件三种方法,Localhost,SMTP,SSL-SMTP
C#发送邮件三种方法,Localhost,SMTP,SSL-SMTP
通过.Net FrameWork 2.0下提供的“System.Net.Mail”可以轻松的实现,本文列举了3种途径来发送:
1.通过Localhost;
2.通过普通SMTP;
3.通过SSL的SMTP;
下面一个一个来说:
1.通过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, "发送邮件出错");
- }
- }
- 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, "发送邮件出错");
- }
- }
- 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, "发送邮件出错");
- }
- }
2.通过普通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, "发送邮件出错");
- }
- }
- 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, "发送邮件出错");
- }
- }
- 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, "发送邮件出错");
- }
- }
上述方法不适用于所有SMTP,经测试zj.com可以,而smtp.163.com不行
3.通过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, "发送邮件出错");
- }
- }
- 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, "发送邮件出错");
- }
- }
- 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, "发送邮件出错");
- }
- }
通过Gmail来发送邮件,成功率极高,几乎都可以发到,推荐使用。
C#发送邮件三种方法,Localhost,SMTP,SSL-SMTP的更多相关文章
- C#发送邮件三种方法(Localhost,SMTP,SSL-SMTP)
原文:C#发送邮件三种方法(Localhost,SMTP,SSL-SMTP) 最近公司由于一个R&I项目的需要,用户要求在购买产品或出货等一些环节,需要发送邮件提醒或者说每周一让系统自动采集数 ...
- .Net锦囊-C#,.Net发送邮件三种方法…
最近公司由于一个R&I项目的需要,用户要求在购买产品或出货等一些环节,需要发送邮件提醒或者说每周一让系统自动采集数据发送一封E-mail,因此我也就找来相关资料,写了一个Demo分享给大家,大 ...
- C# | VS2019连接MySQL的三种方法以及使用MySQL数据库教程
本文将介绍3种添加MySQL引用的方法,以及连接MySQL和使用MySQL的教程 前篇:Visual Studio 2019连接MySQL数据库详细教程 \[QAQ \] 第一种方法 下载 Mysql ...
- Docker MySql 查看版本的三种方法
目录 Docker MySql 查看版本的三种方法 1.mysql -V命令查看版本 2.status命令查看版本 3.version命令查看版本 Docker MySql 查看版本的三种方法 1.m ...
- java解析xml的三种方法
java解析XML的三种方法 1.SAX事件解析 package com.wzh.sax; import org.xml.sax.Attributes; import org.xml.sax.SAXE ...
- [mysql]三种方法为root账户指定密码
前言:前段时间把mysql安装后一直没管它,当时就在奇怪为什么mysql登陆不要密码,原来一直用的超用户账户登陆的(简称超级用户) 其实只怪自己太无知,之前一直用的phpbydamin进行的数据库的可 ...
- AJAX实现跨域的三种方法
由于在工作中需要使用AJAX请求其他域名下的请求,但是会出现拒绝访问的情况,这是因为基于安全的考虑,AJAX只能访问本地的资源,而不能跨域访问. 比如说你的网站域名是aaa.com,想要通过AJAX请 ...
- Spring使用jdbcJdbcTemplate和三种方法配置数据源
三种方法配置数据源 1.需要引入jar包:spring-jdbc-4.3.2.RELEASE.jar <!-- spring内置,springJdbc,配置数据源 --> <bean ...
- Asp.Net保存session的三种方法
C#中保存Session的三种方法及Web.Config设置 1.保存session到sql server,需要指定Sql Server服务器,这种方法因为要读写数据库最慢 <sessionSt ...
随机推荐
- gym102586 部分题解
目录 Evacuation Sum Modulo Count Modulo 2 Robots Construct Points Amidakuji Yosupo's Algorithm link 出于 ...
- OGG复制进程延迟高,优化方法一(使用索引)
日常运维过程中,可能发现OGG同步进程延迟很高: 本篇介绍其中的一种方式. OGG复制进程,或者说同步进程及通过解析ogg trail文件,输出dml语句,在目标库执行dml操作,那么延迟高可能性其一 ...
- 2020-05-16:如何保证redis和mysql数据一致?
福哥答案2020-05-16:
- 用python爬取B站在线用户人数
最近在自学Python爬虫,所以想练一下手,用python来爬取B站在线人数,应该可以拿来小小分析一下 设计思路 首先查看网页源代码,找到相应的html,然后利用各种工具(BeautifulSoup或 ...
- 听说同学你搞不懂Java的LinkedHashMap,可笑
先看再点赞,给自己一点思考的时间,微信搜索[沉默王二]关注这个有颜值却假装靠才华苟且的程序员.本文 GitHub github.com/itwanger 已收录,里面还有我精心为你准备的一线大厂面试题 ...
- 记录使用Python登录浙江大学统一身份认证
背景 现在每天要进行健康情况上报,但是因为经常睡过头忘记打卡,于是想着写一个程序来自动打卡. 统一身份认证 访问健康情况上报页面(https://healthreport.zju.edu.cn/nco ...
- DVWA-1.9之fileupload
low级 对文件类型没有任何约束,可直接上传"一句话木马"hack.php,连接冰蝎. 一句话木马 : medium级 源代码 if( ( $uploaded_type == &q ...
- Nmap在实战中的高级用法(详解)
@ 目录 Nmap在实战中的高级用法(详解) Nmap简单的扫描方式: 一.Nmap高级选项 1.查看本地路由与接口 2.指定网口与IP地址 3.定制探测包 二.Nmap扫描防火墙 1.SYN扫描 2 ...
- SpringBoot 集成SpringSecurity JWT
目录 1. 简介 1.1 SpringSecurity 1.2 OAuth2 1.3 JWT 2. SpringBoot 集成 SpringSecurity 2.1 导入Spring Security ...
- 使用openpyxl创建excel,设置不显示网格线
最近在学openpyxl,想设置excel不显示网格线,试了好多种方法都不行,最后发现可以通过修改views文件来实现. 文件路径:虚拟目录\Lib\site-packages\openpyxl\wo ...