使用MailMessage发送邮件
SmtpClient smtp = new SmtpClient(); //实例化一个SmtpClient
smtp.DeliveryMethod = SmtpDeliveryMethod.Network; //将smtp的出站方式设为 Network
smtp.EnableSsl = false;//smtp服务器是否启用SSL加密
smtp.Host = "smtp.163.com"; //指定 smtp 服务器地址
smtp.Port = 25; //指定 smtp 服务器的端口,默认是25,如果采用默认端口,可省去
//如果你的SMTP服务器不需要身份认证,则使用下面的方式,不过,目前基本没有不需要认证的了
smtp.UseDefaultCredentials = true;
//如果需要认证,则用下面的方式
smtp.Credentials = new NetworkCredential("a@163.com", "****");
MailMessage mm = new MailMessage(); //实例化一个邮件类
mm.Priority = MailPriority.High; //邮件的优先级,分为 Low, Normal, High,通常用 Normal即可
mm.From = new MailAddress("b@163.com", "真有意思测试", Encoding.GetEncoding(936));
//收件方看到的邮件来源;
//第一个参数是发信人邮件地址
//第二参数是发信人显示的名称
//第三个参数是 第二个参数所使用的编码,如果指定不正确,则对方收到后显示乱码
//936是简体中文的codepage值
//注:上面的邮件来源,一定要和你登录邮箱的帐号一致,否则会认证失败
mm.ReplyTo = new MailAddress("b@163.com", "我的接收邮箱", Encoding.GetEncoding(936));
//ReplyTo 表示对方回复邮件时默认的接收地址,即:你用一个邮箱发信,但却用另一个来收信
//上面后两个参数的意义, 同 From 的意义
//mm.CC.Add("a@163.com,b@163.com,c@163.com");
//邮件的抄送者,支持群发,多个邮件地址之间用 半角逗号 分开 //当然也可以用全地址,如下:
mm.CC.Add(new MailAddress("c@163.com", "抄送者A", Encoding.GetEncoding(936)));
//mm.CC.Add(new MailAddress("b@163.com", "抄送者B", Encoding.GetEncoding(936)));
//mm.CC.Add(new MailAddress("c@163.com", "抄送者C", Encoding.GetEncoding(936))); //mm.Bcc.Add("d@163.com,e@163.com");
//邮件的密送者,支持群发,多个邮件地址之间用 半角逗号 分开 //当然也可以用全地址,如下:
//mm.CC.Add(new MailAddress("d@163.com", "密送者D", Encoding.GetEncoding(936)));
//mm.CC.Add(new MailAddress("e@163.com", "密送者E", Encoding.GetEncoding(936)));
//mm.Sender = new MailAddress("xxx@xxx.com", "邮件发送者", Encoding.GetEncoding(936));
//可以任意设置,此信息包含在邮件头中,但并不会验证有效性,也不会显示给收件人
//说实话,我不知道有啥实际作用,大家可不理会,也可不写此项
//mm.To.Add("g@163.com,h@163.com");
//邮件的接收者,支持群发,多个地址之间用 半角逗号 分开 //当然也可以用全地址添加 mm.To.Add(new MailAddress("g@163.com", "接收者g", Encoding.GetEncoding(936)));
//mm.To.Add(new MailAddress("h@163.com", "接收者h", Encoding.GetEncoding(936)));
mm.Subject = "这是邮件标题-测试"; //邮件标题
mm.SubjectEncoding = Encoding.GetEncoding(936);
// 这里非常重要,如果你的邮件标题包含中文,这里一定要指定,否则对方收到的极有可能是乱码。
// 936是简体中文的pagecode,如果是英文标题,这句可以忽略不用
mm.IsBodyHtml = true; //邮件正文是否是HTML格式 mm.BodyEncoding = Encoding.GetEncoding(936);
//邮件正文的编码, 设置不正确, 接收者会收到乱码 mm.Body = "<font color=\"red\">邮件测试,呵呵</font>";
//邮件正文
mm.Attachments.Add(new Attachment(@"c:\d\1.doc", System.Net.Mime.MediaTypeNames.Application.Rtf));
//添加附件,第二个参数,表示附件的文件类型,可以不用指定
//可以添加多个附件
//mm.Attachments.Add(new Attachment(@"d:b.doc"));
smtp.Send(mm); //发送邮件,如果不返回异常, 则大功告成了。 }
二、
using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Mail;
using System.Net;
using System.Configuration;
/// <summary>
/// 发邮件模块
/// Author:tonyepaper.cnblogs.com
/// </summary>
public class Mail
{
private string senderAddress;
/// <summary>
/// 发件人
/// </summary>
public string SenderAddress
{
get { return senderAddress; }
set { senderAddress = value; }
}
private string receiverAddess;
/// <summary>
/// 收件人
/// </summary>
public string ReceiverAddess
{
get { return receiverAddess; }
set { receiverAddess = value; }
}
private string subject;
/// <summary>
/// 主题
/// </summary>
public string Subject
{
get { return subject; }
set { subject = value; }
}
private string body;
/// <summary>
/// 内容
/// </summary>
public string Body
{
get { return body; }
set { body = value; }
}
private string smtpHost;
/// <summary>
/// SMTP主机
/// </summary>
public string SmtpHost
{
get { return smtpHost; }
set { smtpHost = value; }
}
private int smtpPort;
/// <summary>
/// SMTP端口
/// </summary>
public int SmtpPort
{
get { return smtpPort; }
set { smtpPort = value; }
}
private string smtpPassword;
/// <summary>
/// SMTP密码
/// </summary>
public string Password
{
get { return smtpPassword; }
set { this.smtpPassword = value; }
}
/// <summary>
/// 初始化发件人
/// </summary>
public Mail()
{
senderAddress = "qiugen114@gmail.com";
smtpPassword ="*****";
smtpHost = "smtp.gmail.com";
smtpPort = 587;
}
/// <summary>
/// 邮件
/// </summary>
/// <param name="receiverAddess">收件人地址</param>
/// <param name="subject">主题</param>
/// <param name="body">内容</param>
public Mail(string receiverAddess, string subject, string body)
: this()
{
this.receiverAddess = receiverAddess;
this.subject = subject;
this.body = body;
}
/// <summary>
/// 发送邮件
/// </summary>
public bool Send()
{
MailMessage mailMessage = new MailMessage(senderAddress, receiverAddess);
mailMessage.Subject = subject;
mailMessage.Body = body; SmtpClient smtpClient = new SmtpClient(smtpHost, smtpPort);
//使用SSL加密连线
smtpClient.EnableSsl = true;
NetworkCredential networkCredential = new NetworkCredential(senderAddress, smtpPassword);
smtpClient.Credentials = networkCredential;
try
{
smtpClient.Send(mailMessage);
return true;
}
catch (Exception ex)
{
return false;
}
} //调用
protected void Button1_Click(object sender, EventArgs e)
{
Mail mail = new Mail("claymore1114@163.com", "aaaa", "aaaaaa");//初始化收件人
mail.Send();
}
使用MailMessage发送邮件的更多相关文章
- C#利用System.Net发送邮件(带 抄送、密送、附件、html格式的邮件)
net2.0后,C#可以利用System.Net发送邮件了. 代码整理如下: 3. 增加IProcessMessage类,定义了一个消息方法,用于消息传递 /********************* ...
- 发送邮件的小功能(.net core 版)
前言: 使用.net core 开发有一段时间了,期间从.net core 2.0 preview1 到 preview2 又到core 1.1 现在2.0正式版出来了.又把项目升级至2.0了.目前正 ...
- 在 ASP.NET Core 中发送邮件遇到的坑_学习笔记
功能需求 因为项目需要有个忘记密码验证邮箱再重新修改密码的功能,然后我选用了很简单的一个方案,通过验证登录用户的邮箱然后发送邮件,通过这个邮件发送的链接地址来最后实现密码修改的小功能. 项目环境及实现 ...
- System.net.mail 腾讯ssl发送邮件超时
我采用了.net 的自带组件 System.Web.Mail.MailMessage发送邮件,主要是在客户注册网站成功的时候发条欢迎邮件,最近邮件无法发送了,看了下腾讯smtp邮件配置,所有的邮件发送 ...
- C# Smtp方式发送邮件
//简单邮件传输协议类 System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(); ...
- asp.net利用QQ邮箱发送邮件,关键在于开启pop并设置授权码为发送密码
public static bool SendEmail(string mailTo, string mailSubject, string mailContent) { ...
- .net使用QQ邮箱发送邮件
/// <summary> /// 发送邮件 /// </summary> /// <param name="mailTo">要发送的邮箱< ...
- .NET(C#)发送邮件的实现方法
.NET(C#)发送邮件的实现方法 微软已经为我们准备好了现成的工具类供我们调用: MailMessage //邮件信息类 SmtpClient //邮件发送类 首先需要在项目的类文件中引用以下命名空 ...
- 【知识积累】JavaMail实现发邮件功能
一.前言 今天闲来没事,想着通过程序来给别人发邮件.于是,上网搜了一下,相应的资料也很多,刚开始完成了邮件的简单发送,后来想如何能发送附件,继续寻找 答案,但是遇到了一个问题是当我使用txt类型作为附 ...
随机推荐
- Codeforces 402D Upgrading Array:贪心 + 数学
题目链接:http://codeforces.com/problemset/problem/402/D 题意: 给你一个长度为n的数列a[i],又给出了m个“坏质数”b[i]. 定义函数f(s),其中 ...
- SpringMVC注解示例
1.web.xml <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-cla ...
- 将double型小数点后面多余的零去掉
/** 函数功能:将数值小数点后面多余的零清空.* 参数描述:* [in] aSource - 输入的源数值:* [out] aDestination - 输出截取后的数值* ...
- 5 Python 数据类型—数字
Python Number 数据类型用于存储数值. 数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间. var1 = 1 var2 = 10 您也可以使用de ...
- 【二叉树的递归】03判断二叉树中有没有和为给定值的路径【Path Sum】
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 给定一个二叉树和一个和,判断这个树 ...
- UVA11059 - Maximum Product
1.题目名称 Maximum Product 2.题目地址 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemi ...
- 1147. Heaps (30)
In computer science, a heap is a specialized tree-based data structure that satisfies the heap prope ...
- POJ3621Sightseeing Cows
Sightseeing Cows Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10595 Accepted: 3632 ...
- poj 2388 Who's in the Middle(快速排序求中位数)
一.Description FJ is surveying his herd to find the most average cow. He wants to know how much milk ...
- 如何调整chm文字字体大小
chm文档是使用用层叠样式表来控制字符大小的,通过IE的改变“文字大小”是没效果的,那我们是不是就没有办法改变它的大小了呢?显然不是的. 工具/原料 chm文件 方法/步骤 首先打开chm ...