在.net程序中使用System.Net.Mail来发送邮件
System.Net.Mail是微软自家提供的工具,在.net程序中可以使用该空间中的SmtpClient实例来实现邮件的发送。
使用System.Net.Mail空间与Web.config配置相配合,可以很方便的实现邮件发送。
首先,在Web.config文件中<system.net>节点中加入<mailSettings>标签,示例如下:
<system.net>
<mailSettings>
<smtp from="测试者<tester@testserver.com>">
<network host="smtp.ym.163.com" password="MyTestPassword" port="25"
userName="tester@testserver.com" enableSsl="false" defaultCredentials="false" />
</smtp>
</mailSettings>
</system.net>
接下来便是C#代码:(需要using System.Net.Mail;)
/// <summary>
/// 发送HTML邮件,有抄送和密送
/// 需要在Web.config文件中的system.net下的mailSettings节点进行配置
/// </summary>
/// <param name="mailto">收件人地址</param>
/// <param name="mailcc">抄送地址</param>
/// <param name="mailbcc">密送地址</param>
/// <param name="mailsubject">邮件主题</param>
/// <param name="mailbody">邮件正文</param>
public static void SendMail(string mailto, string mailcc, string mailbcc, string mailsubject, string mailbody)
{
MailMessage mMessage = new MailMessage();
MailAddress mTo = new MailAddress(mailto);
if (mailcc != "") { MailAddress mCC = new MailAddress(mailcc); mMessage.CC.Add(mCC); }
if (mailbcc != "") { MailAddress mBCC = new MailAddress(mailbcc); mMessage.Bcc.Add(mBCC); }
mMessage.To.Add(mTo);
mMessage.Subject = mailsubject;
//正文和主题的字符编码都设置为UTF8
mMessage.SubjectEncoding = System.Text.Encoding.UTF8;
mMessage.BodyEncoding = System.Text.Encoding.UTF8;
mMessage.Body = mailbody;
//正文支持html
mMessage.IsBodyHtml = true;
SmtpClient client = new SmtpClient();
client.Send(mMessage);
}
再接下来就可以在程序任意位置调用SendMail方法来实现发送邮件了:
SendMail("272023290@qq.com", "", "", "测试20140418-2", "<h1>你好,这是第二封测试邮件</h1>");
如果程序所使用的SMTP服务器不作特殊限制的话,你的收件箱就可以正常收到这封测试邮件了。
同时,由于我们在Web.config中设置的是“邮件测试者<tester@testserver.com>”,所以收到的邮件的发件人将会是“邮件测试者”。
本文结束。
在.net程序中使用System.Net.Mail来发送邮件的更多相关文章
- C#中使用System.Web.Mail.MailMessage类无法CC多人的问题
从.NET 2.0 开始,引入了一个新的类,System.Net.Mail.MailMessage.该类用来取代 .NET 1.1 时代System.Web.Mail.MailMessage类.Sys ...
- SUID或SGID程序中能不能用system函数
system()函数的声明和说明如下: 注意它的描述那里,system()执行一个由command参数定义的命令,通过调用/bin/sh -c命令来实现这个功能.也就是说它的逻辑是这样的! 进程调用s ...
- linux C程序中获取shell脚本输出(如获取system命令输出)
转载自 http://blog.csdn.net/hjxhjh/article/details/7909518 1. 前言 Unix 界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些 ...
- linux c程序中获取shell脚本输出的实现方法
linux c程序中获取shell脚本输出的实现方法 1. 前言Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作. ...
- System.net.mail 腾讯ssl发送邮件超时
我采用了.net 的自带组件 System.Web.Mail.MailMessage发送邮件,主要是在客户注册网站成功的时候发条欢迎邮件,最近邮件无法发送了,看了下腾讯smtp邮件配置,所有的邮件发送 ...
- java中的system.out.println()和JSP中out.println()差别
out.println()输出到client. 在out.println()中,out是response的实例.是以response为对象进行流输出的,即将内容输出到client.假设在JSP ...
- 使用System.Net.Mail中的SMTP发送邮件(带附件)
System.Net.Mail 使用简单邮件传输协议SMTP异步发送邮件 想要实现SMTP发送邮件,你需要了解这些类 SmtpClient :使用配置文件设置来初始化 SmtpClient类的新实例. ...
- 发现用System.Net.Mail发邮件(代码附后),附件稍微大一点就会造成程序假死. 有没有什么简单的解决办法呢? 多谢!!
附件大,上传,发送一定会慢.程序卡,应该是主线程正在发送,邮件造成的.创建其他线程在后台去发.这样就不影响主线程做其他工作了 using System; using System.Collecti ...
- MOSS程序中如何发Mail?
我们使用.NET类库中的API发Mail的时候,我们要配置他的SMTP Server等,但是在Sharepoint里,已经提供了相关的封装的方法: SPUtility.SendEmail(SPWeb, ...
随机推荐
- 出现win8.1蓝屏重启故障该如何解决?
出现win8.1蓝屏重启故障该如何解决?电脑出现win8.1蓝屏重启故障,系统提示“你的电脑遇到问题,需要重新启动,我们只收集某些错误信息,然后为你重新启动.”怎么解决?本教程为你提供了win8.1蓝 ...
- oracle 清除当前用户的回收站
--清除当前用户的回收站:purge recyclebin; --删除表数据truncate table --查看当前用户回收站select * from user_recyclebin t;
- CODEVS1291 火车线路
http://codevs.cn/problem/1291/ 题目描述 Description 某列火车行使在C个城市之间(出发的城市编号为1,结束达到的城市的编号为C),假设该列火车有S个座位,现在 ...
- 洛谷P1530 分数化小数 Fractions to Decimals
P1530 分数化小数 Fractions to Decimals 103通过 348提交 题目提供者该用户不存在 标签USACO 难度普及/提高- 提交 讨论 题解 最新讨论 暂时没有讨论 题目 ...
- NULL值比较,两个列的合并,列值按条件替换。
show create table 表名 -- 显示创建表的sql语句. 为已有的表增加新列.alter table 表名 add 列名 int NULL -- 此行加了一个int 类型 默认可以nu ...
- hbase日常操作及维护
一,基本命令: 建表:create 'testtable','coulmn1','coulmn2' 也可以建表时加coulmn的属性如:create 'testtable',{NAME => ' ...
- AnyCAD三维控件场景节点详解
SceneNode是AnyCAD三维图形平台的AnyViz显示引擎的核心对象之一,只有放在场景管理器(SceneManager)里的节点才能被显示引擎所显示. 1. 节点分类 SceneNode是 ...
- ADO.NET中的DataReader详解
使用特性 原理图 PS:Read()使指针下移,同时销毁上一条.所以SqlDataReader是只进的. GetValue()是找当前行中的列 SqlDataReader()特性. 1)只进的 上面 ...
- 类名 对象名 =new 类名();
类名 对象名 =new 类名();该怎么理解 类名 对象名 =new 类名();=左边:创建一个类的对象=右边:调用这个类的构造函数初始化对象,类名()这个是构造函数,用来做初始化的.
- json传参应用
json传参应用 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言.易于人阅 ...