最近公司由于一个R&I项目的需要,用户要求在购买产品或出货等一些环节,需要发送邮件提醒或者说每周一让系统自动采集数据发送一封E-mail,因此我也就找来相关资料,写了一个Demo分享给大家,大家共同学习学习。

通过.Net FrameWork
2.0下提供的“System.Net.Mail”可以轻松的实现,本文列举了3种途径来发送:
1.通过Localhost;
2.通过普通SMTP;
3.通过SSL的SMTP;
下面一个一个来说:
[html]
  
   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.CC.Add(c@c.com);

msg.From = new MailAddress("a@a.com", "AlphaWu",
System.Text.Encoding.UTF8);

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.CC.Add(c@c.com);

msg.From = new MailAddress(master@boys90.com, "dulei",
System.Text.Encoding.UTF8);

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 C#代码如下
[html]
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.CC.Add("c@c.com");

msg.From = new MailAddress("master@boys90.com", "dulei",
System.Text.Encoding.UTF8);

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("dulei@71info.com",
"userpass");

//在71info.com注册的邮箱和密码

client.Host =
"smtp.71info.com";

object userState =
msg;

try

{

client.SendAsync(msg,
userState);

//简单一点儿可以client.Send(msg);

MessageBox.Show("发送成功");

}

catch (System.Net.Mail.SmtpException
ex)

{

MessageBox.Show(ex.Message,
"发送邮件出错");

}

}

3.通过SSL的SMTP
[html]
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.CC.Add(c@c.com);

msg.From = new MailAddress("boys90.com", "dulei",
System.Text.Encoding.UTF8);

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("boys90com@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来发送邮件,成功率极高,几乎都可以发到,推荐使用,以上的几种方法,我想已经够我们做开发的用了。至于我做的Demo我整理好了就分享给大家。

我的独立博客90男孩分享网 欢迎大家光临,我们一起努力学习更多的知识,分享网快乐分享,快乐生活!!

版权声明:本文为博主原创文章,未经博主允许不得转载。

.Net锦囊-C#,.Net发送邮件三种方法…的更多相关文章

  1. C#发送邮件三种方法(Localhost,SMTP,SSL-SMTP)

    原文:C#发送邮件三种方法(Localhost,SMTP,SSL-SMTP) 最近公司由于一个R&I项目的需要,用户要求在购买产品或出货等一些环节,需要发送邮件提醒或者说每周一让系统自动采集数 ...

  2. C#发送邮件三种方法,Localhost,SMTP,SSL-SMTP

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

  3. 像画笔一样慢慢画出Path的三种方法(补充第四种)

    今天大家在群里大家非常热闹的讨论像画笔一样慢慢画出Path的这种效果该如何实现. 北京-LGL 博客号@ligl007发起了这个话题.然后各路高手踊跃发表意见.最后雷叔 上海-雷蒙 博客号@雷蒙之星 ...

  4. JAVA之线程同步的三种方法

    最近接触到一个图片加载的项目,其中有声明到的线程池等资源需要在系统中线程共享,所以就去研究了一下线程同步的知识,总结了三种常用的线程同步的方法,特来与大家分享一下.这三种方法分别是:synchroni ...

  5. java解析xml的三种方法

    java解析XML的三种方法 1.SAX事件解析 package com.wzh.sax; import org.xml.sax.Attributes; import org.xml.sax.SAXE ...

  6. 【Android】Eclipse自动编译NDK/JNI的三种方法

    [Android]Eclipse自动编译NDK/JNI的三种方法 SkySeraph Sep. 18th  2014 Email:skyseraph00@163.com 更多精彩请直接访问SkySer ...

  7. DataTable数据批量写入数据库三种方法比较

    DataTable数据批量写入数据库三种方法比较 标签: it 分类: C#1)   insert循环插入:2)   sqldataadapter.update(dataset,tablename); ...

  8. 转载:WinForm中播放声音的三种方法

    转载:WinForm中播放声音的三种方法 金刚 winForm 播放声音 本文是转载的文章.原文出处:http://blog.csdn.net/jijunwu/article/details/4753 ...

  9. [mysql]三种方法为root账户指定密码

    前言:前段时间把mysql安装后一直没管它,当时就在奇怪为什么mysql登陆不要密码,原来一直用的超用户账户登陆的(简称超级用户) 其实只怪自己太无知,之前一直用的phpbydamin进行的数据库的可 ...

随机推荐

  1. 前端要给力之:语句在JavaScript中的值

    文件夹 文件夹 问题是语句有值吗 那么说你骗我咯 有啥米用呢 研究这个是不是闲得那个啥疼 ES5ES6有什么差异呢 结论是ES6是改了规则但更合理 最后不不过if语句 这两天在写语言精髓那本书的第三版 ...

  2. 【题解】[APIO2009]会议中心

    [题解][P3626 APIO2009]会议中心 真的是一道好题!!!刷新了我对倍增浅显的认识. 此题若没有第二份输出一个字典序的方案,就是一道\(sort+\)贪心,但是第二问使得我们要用另外的办法 ...

  3. Eclipse javax.servlet.jsp.PageContext cannot be resolved to a type 错误解决办法

    不要 直接将jsp-api.jar拷贝到lib目录下,而是通过外部jar包引用.项目 右键->Properties->Libraries->Add External JARS-选择 ...

  4. StreamWriter结合UTF-8编码使用不当,会造成BOM(Byte Order Mark )问题生成乱码(转载)

    问: I was using HttpWebRequest to try a rest api in ASP.NET Core MVC.Here is my HttpWebRequest client ...

  5. Appium移动自动化配置-ios&安卓

    官网安装参考:https://www.npmjs.com/package/appium Appium安装 1.安装nodejs 2.安装appium iOS侧环境安装 1.安装xcode 2.安装Xc ...

  6. BZOJ 3083 遥远的国度 树链剖分+线段树

    有换根的树链剖分的裸题. 在换根的时候注意讨论. 注意数据范围要开unsigned int或longlong #include<iostream> #include<cstdio&g ...

  7. Spring Boot2.0之web开发

    1.关于静态资源的访问 在我们开发Web应用的时候,需要引用大量的js.css.图片等静态资源. Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则: /s ...

  8. 鸟哥的linux私房菜 - 第三章 主机规划与磁盘分区

    各硬件装置在linux中的文件名 在linux系统中,每个装置都被当成一个档案来对待. 常见的装置与其在linux中的档名: 磁盘分区 磁盘链接的方式与装置文件名的关系 个人计算机常见的磁盘接口有两种 ...

  9. gVim/Vim 一键编译、连接、运行 C/C++ 单文件

    用于Gvim 或 Vim 配置文件的一键编译与运行函数(注:需要机器上安装了GCC才行) 本代码只加入了对C/C++的编译与运行,如果要加入其语言的可以参考此代码加入即可 同时,本代码加入了对Wind ...

  10. CentOS7 默认防火墙firewalld

    firewalld基础 firewalld是CentOS7源生支持的防火墙,firewalld最大的好处有两个:支持动态更新,不用重启服务:第二个就是加入了防火墙的“zone”概念. firewall ...