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发送邮件的更多相关文章

  1. C#利用System.Net发送邮件(带 抄送、密送、附件、html格式的邮件)

    net2.0后,C#可以利用System.Net发送邮件了. 代码整理如下: 3. 增加IProcessMessage类,定义了一个消息方法,用于消息传递 /********************* ...

  2. 发送邮件的小功能(.net core 版)

    前言: 使用.net core 开发有一段时间了,期间从.net core 2.0 preview1 到 preview2 又到core 1.1 现在2.0正式版出来了.又把项目升级至2.0了.目前正 ...

  3. 在 ASP.NET Core 中发送邮件遇到的坑_学习笔记

    功能需求 因为项目需要有个忘记密码验证邮箱再重新修改密码的功能,然后我选用了很简单的一个方案,通过验证登录用户的邮箱然后发送邮件,通过这个邮件发送的链接地址来最后实现密码修改的小功能. 项目环境及实现 ...

  4. System.net.mail 腾讯ssl发送邮件超时

    我采用了.net 的自带组件 System.Web.Mail.MailMessage发送邮件,主要是在客户注册网站成功的时候发条欢迎邮件,最近邮件无法发送了,看了下腾讯smtp邮件配置,所有的邮件发送 ...

  5. C# Smtp方式发送邮件

    //简单邮件传输协议类             System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();        ...

  6. asp.net利用QQ邮箱发送邮件,关键在于开启pop并设置授权码为发送密码

    public static bool SendEmail(string mailTo, string mailSubject, string mailContent)        {         ...

  7. .net使用QQ邮箱发送邮件

    /// <summary> /// 发送邮件 /// </summary> /// <param name="mailTo">要发送的邮箱< ...

  8. .NET(C#)发送邮件的实现方法

    .NET(C#)发送邮件的实现方法 微软已经为我们准备好了现成的工具类供我们调用: MailMessage //邮件信息类 SmtpClient //邮件发送类 首先需要在项目的类文件中引用以下命名空 ...

  9. 【知识积累】JavaMail实现发邮件功能

    一.前言 今天闲来没事,想着通过程序来给别人发邮件.于是,上网搜了一下,相应的资料也很多,刚开始完成了邮件的简单发送,后来想如何能发送附件,继续寻找 答案,但是遇到了一个问题是当我使用txt类型作为附 ...

随机推荐

  1. php设计模式课程---7、装饰器模式如何使用

    php设计模式课程---7.装饰器模式如何使用 一.总结 一句话总结: 装饰器的核心是获取了文章类整个类,而不是获取了文章内容,有了这个文章类,我想给你加多少装饰就给你加多少装饰(将文章这个类封装进去 ...

  2. Myeclipse或者Eclipse恢复默认启动时显示选择workspace的问题

    [问题描述] 不知道是不是Myeclipse8.5的Bug,我最近安装了8.5之后,前面几天打开MyEclipse的时候都是让我自己选择工作空间的,但是最近突然每次打开的时候都自己打开了C盘下面工作空 ...

  3. 原 requirements.txt 介绍 & 快捷生成

    requirements.txt介绍   requirements.txt 文件 里面记录了当前程序的所有依赖包及其精确版本号.   这个文件有点类似与Rails的Gemfile.其作用是用来在另一台 ...

  4. Linux不停往外发包

    一台Linux这两天不停往外发包,造成外部无法访问. [root@ct-nat ~]# watch ifconfig-------------查看数据包新增情况 Every 2.0s: ifconfi ...

  5. git rebase小计(转)

    git rebase,顾名思义,就是重新定义(re)起点(base)的作用,即重新定义分支的版本库状态.要搞清楚这个东西,要先看看版本库状态切换的两种情况: 我们知道,在某个分支上,我们可以通过git ...

  6. Poj 2247 Humble Numbers(求只能被2,3,5, 7 整除的数)

    一.题目大意 本题要求写出前5482个仅能被2,3,5, 7 整除的数. 二.题解 这道题从本质上和Poj 1338 Ugly Numbers(数学推导)是一样的原理,只需要在原来的基础上加上7的运算 ...

  7. DSP/BIOS程序启动顺序

    基于TI的DSP芯片的应用程序分为两种:一般应用程序:DSP/BIOS应用程序. 为简化编程,TI提供了一套C的编程接口,它以API和宏的形式封装了TI的所有硬件模块,这套接口统称DSP/BIOS.D ...

  8. IDEA 热部署 + 下载jar包放到maven中

    IDEA 热部署: 1 :  POM中加入devtools的依赖,就可以实现热部署 <dependency> <groupId>org.springframework.boot ...

  9. 删除 char[10][10] 中的一行

    1. 描述 删除二维字符数组其中一行,并用下一行进行填补 2. 代码 #include <iostream> #include <string.h> using namespa ...

  10. C#设计模式(8)——桥接模式

    一.概念 桥接模式即将抽象部分与实现部分脱耦,使它们可以独立变化. 二.模型 三.代码实现 // 客户端调用 // 类似Web应用程序 class Client { static void Main( ...