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 是架构在云端的电子邮件服务,它能提供基于事务的可靠的电子邮件传递. 并且具有可扩充性和实时分析的能力.常见的用例有: 自动回复用户的邮件 定期发送信息给用 ...
随机推荐
- 微信小程序图片宽100%显示并且不变形
<view class="meiti" style="background-color:red;"> <image src="htt ...
- Netflix OSS、Spring Cloud还是Kubernetes? 都要吧!
Netflix OSS是由Netflix公司主持开发的一套代码框架和库,目的是解决上了规模之后的分布式系统可能出现的一些有趣问题.对于当今时代的Java开发者们来说,Netflix OSS简直就是在云 ...
- struts2:JSON在struts中的应用(JSP页面中将对象转换为JSON字符串提交、JSP页面中获取后台Response返回的JSON对象)
JSON主要创建如下两种数据对象: 由JSON格式字符串创建,转换成JavaScript的Object对象: 由JSON格式字符串创建,转换成JavaScript的List或数组链表对象. 更多关于J ...
- React Native在开发过程中遇到的一些问题(俗称:坑)
4900 服务器地址错误 运行时产生以下错误:Could not connect to development server. 1.URL地址设置 问题: Could not connect to d ...
- Http Post 二进制通信
客户端请求和接收(使用了httpclient4.3 和netty3.5) public static void httpPost11() { CloseableHttpClient httpClien ...
- 最NB的发现 LINUX 下玩teamviewer 命令行设置密码
cd /opt/teamviewer/tv_bin/ [root@666 tv_bin]# ls desktop script teamviewerd TVGuiSlave.32 xdg-utils ...
- InfoQ 趋势报告:架构和设计领域技术演变详解
https://www.infoq.cn/article/R7lWXd0R4VFf3E0bB*38 本文概述了我们对当前“架构和设计”领域的看法,这个领域侧重于基础设施模式.技术框架模式的实现,以及软 ...
- c++ STL map 结构体
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候 ...
- (原创)结构体自动化转为char数组的实现
结构体自动化转换为char数组这个需求,来自于一个最近开发的一个项目,在项目开发过程中遇到一个小问题,需要将各种结构体拷贝到char数组中,这对于一个简单的结构体来说是很简单的事情,比如下面这个只有整 ...
- python(58):python下划线
详解Python中的下划线 本文将讨论Python中下划线(_)字符的使用方法.我们将会看到,正如Python中的很多事情,下划线的不同用法大多数(并非所有)只是常用惯例而已. 单下划线(_) 通常情 ...