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 ...
随机推荐
- Bytom 储蓄分红 DAPP 开发指南
储蓄分红DAPP 储蓄分红合约简介 储蓄分红合约指的是项目方发起了一个锁仓计划(即储蓄合约和取现合约),用户可以在准备期自由选择锁仓金额参与该计划,等到锁仓到期之后还可以自动获取锁仓的利润.用户可以在 ...
- ASP.NET Core - 实现Http自定义请求头策略
前言 在正常的情况下,当我们系统用到JWT认证方式时,需要在Http请求头添加Authorization: XXX,这样在后台服务的控制器中打上[Authorize]授权标签,就限定所有的请求必须通过 ...
- 漏洞重温之XSS(下)
XSS总结 XSS的可利用方式 1.在登录后才可以访问的页面插入xss代码,诱惑用户访问,便可直接偷取用户cookie,达到窃取用户身份信息的目的. 2.修改昵称,或个人身份信息.如果别的用户在登录状 ...
- Dubbo系列之 (二)Registry注册中心-注册(2)
引导 本章主要介绍下AbstractRegistry.FailbackRegistry的作用和源码. AbstractRegistry 首先,直接引出这个类的作用,该类主要把服务提供者信息缓存本地文件 ...
- HotSpot的执行引擎-CallStub栈帧
之前多次提到接触到调用JavaCalls::call()方法来执行Java方法,如: (1)Java主类装载时,调用JavaCalls::call()方法执行的Java方法checkAndLoadMa ...
- R 安装包的方法
install.packages(packageName) install.packages(path_to_file, repos = NULL, type="source") ...
- IDEA - 错误提示 Could not autowire. No beans of '' type found
工具: IntelliJ IDEA 2019.3.4 x64 Ultimate,maven项目: 现象:如下图所示,出现Could not autowire. No beans of '' type ...
- 怎样使用laravel的脚手架安装bootstrap
第一步.使用composer引入laravel中的ui库 composer require laravel/ui --dev 第二步.生成bootstrap的基本脚手架 php artisan ui ...
- DNSPod 修改NS 服务器?
其实我几乎没在国内注册过域名,更没想过用国内的DNS 服务,DNSPod 也是属于听说过名字的地步而已,但是正好在腾讯云注册了一个cn 域名,又觉得对DNSPod 的DNS 服务不是特别满意,所以想把 ...
- 557反转字符串中的单词III
class Solution: # 定义一个反转字符串的函数. def str_rever(self,s): length = len(s) s1 = '' for index in range(le ...