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 是架构在云端的电子邮件服务,它能提供基于事务的可靠的电子邮件传递. 并且具有可扩充性和实时分析的能力.常见的用例有: 自动回复用户的邮件 定期发送信息给用 ...
随机推荐
- js json转url参数
var json = { sh: '上海' } var params = Object.keys(json).map(function (key) { // body... return encode ...
- CentOS 安装Mosquitto及测试
系统信息,阿里云服务器 安装工具 yum install gcc gcc-c++ yum install openssl-devel yum install c-ares-devel yum inst ...
- ubuntu 14.04安装mysql数据库
1. apt-get install mysql-server mysql-client 输入root的密码: 确认root的密码: 2. 连接测试是否成功:mysql –hlocalhost –ur ...
- OpenCV Machine Learning 之 K近期邻分类器的应用 K-Nearest Neighbors
OpenCV Machine Learning 之 K近期邻分类器的应用 以下的程序实现了对高斯分布的点集合进行分类的K近期令分类器 #include "ml.h" #includ ...
- 【问题跟踪】KryoException: java.io.IOException: No space left on device
今天在对LDA进行不同參数训练模型.记录其avglogLikelihood和logPerplexity,以便推断模型训练是否收敛时,产生了一个令人极度崩溃的事儿:程序在辛辛苦苦跑了7.3h后...挂了 ...
- C++11 POD类型
POD,全称plain old data,plain代表它是一个普通类型,old代表它可以与c兼容,可以使用比如memcpy()这类c中最原始函数进行操作.C++11中把POD分为了两个基本概念的集合 ...
- idea 改变version control
idea 当一个moudule拥有2个VCS的时候 如何切换其应用的VSC 如拥有 SVN 和 GIT 2个版本 ,想换回SVN则删除 git目录 将 version control vcs 设 ...
- ubuntu 16.04如何生成ssh key以及如何查看ssh key
检查本地是否有SSH Key存在 在终端输入 ls -al ~/.ssh 如果输出的是: No such file or directory 那就没有ssh key 如果有就会出现这样: 生成新的SS ...
- Liunx下Intel无线网卡驱动安装
原文: https://blog.csdn.net/u014157776/article/details/78272611 首先查看网卡型号,指令: lspci | grep -i net 如果是In ...
- PHP 常见header 状态
转载:http://blog.csdn.net/mothz/article/details/6029810 <?php //200 正常状态 header('HTTP/1.1 200 OK'); ...