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 是架构在云端的电子邮件服务,它能提供基于事务的可靠的电子邮件传递. 并且具有可扩充性和实时分析的能力.常见的用例有: 自动回复用户的邮件 定期发送信息给用 ...
随机推荐
- HTTP 请求头 详解
转载:https://kb.cnblogs.com/page/92320/ HTTP(HyperTextTransferProtocol)即超文本传输协议,目前网页传输的的通用协议.HTTP协议采用了 ...
- python中decode和encode的区别
#-*-coding:utf-8 import sys ''' *首先要搞清楚,字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码, 即先将 ...
- 使用git上传项目到码云
一.git安装 1.首先在官方网站下载git工具,或者根据以下链接进行下载:http://download.csdn.net/detail/qq_27501889/9788879(此链接版本为git- ...
- OOM killer(Out Of Memory killer)
最近接连遇到两个情况就是接连进程把kill掉 第一个情况就是有一个java进程被kill了.原因是我这个服务器上海部署了一个node服务,这个node服务大家都不熟悉.所以在使用的时候没有注意内存的使 ...
- 利用阿里云如何开发一款直播app?
在开发的过程中应该注意些什么?下面让小编告诉你: 随着互联网的发展,越来越多的人已经加入互联网的行列.而且很多的人也开始直播,和众多的网友分享自己身边事情.互联网还在加速发展,从PC互联网,到移动互联 ...
- 启动 angular-phonecat 项目时出现这玩意 。('The header content contains invalid characters');
最近学习angular, 跟着视频做一个动作,启动 “ angular-phonecat ” 这个项目 敲入 “npm start ” 启动没有问题,但是 "http://localhost ...
- 浅析C#中的托付
托付是寻址方法的.NET版本号.在C++中.函数指针仅仅只是是一个指向内存位置的指针,它不是类型安全的.而.NET托付全然不同,托付是安全类型的类,它定义了返回类型和參数的类型. 当把方法传递给其它方 ...
- C#实现RSA加密与解密、签名与认证
一.RSA简介 RSA公钥加密算法是1977年由Ron Rivest.Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的.RSA取名来自开发他们三者的名字.RSA是目前最有影响力 ...
- Oracle根据表生成系统流水号
1.建表tablewater create table TABLEWATER ( tb_id INTEGER not null, vc_table_name ), num_water_no ) )vc ...
- DIOCP开源项目-利用队列+0MQ+多进程逻辑处理,搭建稳定,高效,分布式的服务端
最近头脑里面一直在想怎么样让能让大家基于DIOCP上写出稳定的服务端程序.很多朋友问我,你DIOCP稳定吗,我可以用他来做三层服务器吗? 当时我是这样回答的,我只能保证DIOCP底层通信的稳定. 说实 ...