WebForm发送邮件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Net.Mail;
using System.Configuration;
using System.Net;
using System.Reflection;
using System.Text; namespace SendMailMessage.Uitls
{
public class EMail
{
// 实例化一个邮件类
MailMessage _mailMessage = new MailMessage();
/// <summary>
/// 发件使用的邮箱地址
/// </summary>
private string _fromEmail = ConfigurationManager.AppSettings["EmailSender"].ToString(); /// <summary>
/// 发件邮箱地址密码
/// </summary>
private string _senderPassword = ConfigurationManager.AppSettings["EmailServer_Pwd"].ToString(); /// <summary>
/// 显示在邮件上的发件人名称
/// </summary>
private string _displayName = ConfigurationManager.AppSettings["EmailSenderName"].ToString(); /// <summary>
/// 发件邮箱使用的服务器
/// </summary>
private string _smtp = ConfigurationManager.AppSettings["EmailServer"].ToString(); /// <summary>
/// 邮件的接收者
/// </summary>
private string ToEmail { set; get; } /// <summary>
/// 抄送
/// </summary>
private string CC { set; get; } /// <summary>
/// 密送
/// </summary>
private string Bcc { set; get; } /// <summary>
/// 邮件标题
/// </summary>
private string Subject { set; get; } /// <summary>
/// 邮件正文
/// </summary>
private string Body { set; get; } /// <summary>
/// 附件
/// </summary>
private string Attachments { set; get; } public EMail(string toEmail, string subject, string body)
{
ToEmail = toEmail;
Subject = subject;
Body = body;
} public EMail(string toEmail, string cc, string bcc, string subject, string body, string attachments)
{ CC = cc;
Bcc = bcc;
ToEmail = toEmail;
Subject = subject;
Body = body;
Attachments = attachments; }
/// <summary>
/// 发送email
/// </summary>
/// <param name="toEmail">邮件的接收者,支持群发,多个地址之间用半角逗号分开</param>
/// <param name="subject">主题</param>
/// <param name="body">正文</param>
public static bool SendEmail(string toEmail, string subject, string body)
{
EMail email = new EMail(toEmail, subject, body);
return email.Send();
} /// <summary>
/// 发送email
/// </summary>
/// <param name="toEmail">邮件的接收者,支持群发,多个地址之间用半角逗号分开</param>
/// <param name="cc">抄送,多个地址之间用半角逗号分开</param>
/// <param name="bcc">密送,多个地址之间用半角逗号分开</param>
/// <param name="subject">主题</param>
/// <param name="body">正文</param>
/// <param name="attachments">附件地址</param>
public static bool SendEmail(string toEmail, string cc, string bcc, string subject, string body, string attachments)
{
EMail email = new EMail(toEmail, cc, bcc, subject, body, attachments);
return email.Send();
} /// <summary>
/// 邮件发送
/// </summary>
public bool Send()
{
Type type = typeof(SmtpClient);
SmtpClient _smtpClient = new SmtpClient(); bool result = false; try
{
// 将smtp的出站方式设为Network
_smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; // smtp服务器是否启用SSL加密
_smtpClient.EnableSsl = false; // 指定smtp服务器地址
_smtpClient.Host = _smtp; // 指定smtp服务器的端口,默认是25,如果采用默认端口,可省去
//smtp.Port = 25; // 如果你的SMTP服务器不需要身份认证,则使用下面的方式,不过,目前基本没有不需要认证的了
//smtp.UseDefaultCredentials = true; // 如果需要认证,则用下面的方式
_smtpClient.Credentials = new NetworkCredential(_fromEmail, _senderPassword); // 邮件的优先级,分为Low、Normal、 High,通常用Normal即可
_mailMessage.Priority = MailPriority.High; // 收件方看到的邮件来源;第一个参数是发信人邮件地址,第二参数是发信人显示的名称,第三个参数是第二个参数所使用的编码,如果指定不正确,则对方收到后显示乱码,936是简体中文的codepage值
_mailMessage.From = new MailAddress(_fromEmail, _displayName, Encoding.GetEncoding()); // ReplyTo 表示对方回复邮件时默认的接收地址,即:你用一个邮箱发信,但却用另一个来收信,后两个参数的意义,同From
_mailMessage.ReplyTo = new MailAddress(_fromEmail, _displayName, Encoding.GetEncoding()); // 邮件的接收者,支持群发,多个地址之间用半角逗号分开
_mailMessage.To.Add(ToEmail); // 抄送
if (!string.IsNullOrEmpty(CC))
{
_mailMessage.CC.Add(CC);
} // 密送
if (!string.IsNullOrEmpty(Bcc))
{
_mailMessage.Bcc.Add(Bcc);
} // 邮件标题
_mailMessage.Subject = Subject; // 这里非常重要,如果你的邮件标题包含中文,这里一定要指定,否则对方收到的极有可能是乱码
_mailMessage.SubjectEncoding = Encoding.GetEncoding(); // 邮件正文是否是HTML格式
_mailMessage.IsBodyHtml = true; // 邮件正文的编码,设置不正确,接收者会收到乱码
_mailMessage.BodyEncoding = Encoding.GetEncoding(); // 邮件正文
_mailMessage.Body = Body; // 附件
if (!string.IsNullOrEmpty(Attachments))
{
string[] attachmentsArray = Attachments.Split(','); for (int i = ; i < attachmentsArray.Length; i++)
{
_mailMessage.Attachments.Add(new Attachment(attachmentsArray[i]));
}
} // 发送邮件
_smtpClient.Send(_mailMessage);
result = true;
}
catch (Exception ex)
{
result = false;
} return result;
}
} }
WebForm发送邮件的更多相关文章
- C# 发送邮件整理,包括控制台程序、WPF、WebForm 及 ASP.NET MVC
一直想把发送邮件的功能掌握,总是各种情况拖着了,这两天终于看了一下,整理一下,希望能帮到想学的. 发送邮件使用SMTP服务器,有两种方案,一种是使用IIS的SMTP功能:另一种是直接使用邮件供应商的S ...
- WebForm 【发送邮件】
C#实现简单的SmtpClient发送邮件 分析 需要什么 发送邮件 -- 发送内容 -- 接收邮件 流程(各功能都适用) 创建对象 -- ...
- 利用SQLServer数据库发送邮件
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 这个应用案例很多,一般都是预警,比如异常连接的时候,或者数据库报错的时候.等等,,, 先 ...
- C# 多种方式发送邮件(附帮助类)
因项目业务需要,需要做一个发送邮件功能,查了下资料,整了整,汇总如下,亲测可用- QQ邮箱发送邮件 #region 发送邮箱 try { MailMessage mail = new MailMess ...
- WebForm获取GET或者POST参数到实体的转换,ADO.NET数据集自动转换实体
最近在修改维护以前的webform项目(维护别人开发的.....)整个aspx没有用到任何的控件,这个我也比较喜欢不用控件所以在提交信息的时候需要自己手动的去Request.QueryString[] ...
- JavaMail发送邮件
发送邮件包含的内容有: from字段 --用于指明发件人 to字段 --用于指明收件人 subject字段 --用于说明邮件主题 cc字段 -- 抄送,将邮件发送给收件人的同时抄 ...
- 技术笔记:Indy控件发送邮件
工作中有个需求需要发送邮件,因为使用的delphi6,所以自然就选择了indy组件,想想这事挺简单的.实现的过程倒是简单,看着Indy的demo很快就完了,毕竟也不是很复杂的功能. 功能要求: 1.压 ...
- mono中发送邮件并保存本次收件人的地址
在ios端mono开发中,发送邮件可以选择调用ios原生email程序.有两种方式实现这种功能,一是程序跳转到ipad中email程序,另外一种是将发送邮件的界面在自己应用里弹出. 首先第一种方式的代 ...
- Azure 上通过 SendGrid 发送邮件
SendGrid 是什么? SendGrid 是架构在云端的电子邮件服务,它能提供基于事务的可靠的电子邮件传递. 并且具有可扩充性和实时分析的能力.常见的用例有: 自动回复用户的邮件 定期发送信息给用 ...
随机推荐
- Excel Open Xml中CellStyleXfs,cellStyle,cellXfs之间关系的总结
最近这几个东东打交道了几天,总算是弄明白了,综合多个帖子,现在总结如下: 在创建stylesheet时,必须创建fonts,Fills,Borders 和cellXfs(CellFormats)四个节 ...
- MySql计算两个日期的时间差函数
MySql计算两个日期时间的差函数: 第一种:TIMESTAMPDIFF函数,需要传入三个参数,第一个是比较的类型,可以比较FRAC_SECOND.SECOND. MINUTE. HOUR. DAY. ...
- JDK1.6新特性,网络增强(Networking features and enhancements)
参考: http://docs.oracle.com/javase/6/docs/technotes/guides/net/enhancements-6.0.html http://blog.csdn ...
- Django在Win7下安装与创建项目hello word示例
Django在Win7下的安装及创建项目hello word的例子 有关python 的django 框架安装与开发的小例子.Django在Win7下的安装及创建项目hello word.1.安装:命 ...
- 解决 slf4j + log4j 在云服务上打印乱码
由于云服务器的环境是纯英文的 虽然在eclipse中可以打印日志显示中文,但是实用putty的时候查看却是乱码,下载日志也同样是乱码 那么只要设置utf-8即可
- Atitit 项目管理 提升开发效率的项目流程方法模型 哑铃型 橄榄型 直板型
Atitit 项目管理 提升开发效率的项目流程方法模型 哑铃型 橄榄型 直板型 项目主体三个部分 ui界面,中间层,数据库 按照不同的比重可以分为一下三个模型 哑铃型 橄榄型 直板型 哑铃型 开 ...
- Atitit 架构的原则attilax总结
Atitit 架构的原则attilax总结 1.1. Rule of three称为"三次原则",指的是当某个功能第三次出现时,才进行"抽象化".是DRY原则和 ...
- 基于Xilinx Zynq Z7045 SoC的CNN的视觉识别应用
基于Xilinx Zynq Z7045 SoC的CNN的视觉识别应用 由 judyzhong 于 星期三, 08/16/2017 - 14:56 发表 作者:stark 近些年来随着科学技术的不断进步 ...
- scikit
http://scikit-learn.org/dev/_downloads/scikit-learn-docs.pdf http://scikit-learn.org/stable/tutorial ...
- TCP三次握手,四次分手
1.什么是HTTP连接 http是建立在TCP协议之上的一种应用. 最显著的特点是每次请求,都需要服务器响应,请求结束后,会主动释放连接. 1)在HTTP 1.0中,客户端的每次请求都要建立一次单独的 ...