先来第一种

 // 版权所有 ZhuoYue Co.,Ltd 卓越一通秘密信息
// 文件名称:MyEmailByCDO.cs
// 作  者:huangzh
// 创建日期:2015-08-20 16:18:27
// 功能描述:发送邮件MyEmailByCDO
// 任务编号:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace ZhuoYueE.Bpc.Core.Email
{ /// <summary>
/// 功能描述:发送邮件MyEmailByCDO
/// 作  者:huangzh
/// 创建日期:2015-08-20 16:18:24
/// 任务编号:
/// </summary>
public class MyEmailByCDO
{
///<summary>
/// 构造函数
///</summary>
///<param name="strserver">发件箱的邮件服务器地址</param>
///<param name="strtoMail">收件人地址(可以是多个收件人,程序中是以“;"进行区分的)</param>
///<param name="strfromMail">发件人地址</param>
///<param name="strsubject">邮件标题</param>
///<param name="stremailBody">邮件内容(可以以html格式进行设计)</param>
///<param name="strpassword">发件人邮箱密码</param>
///<param name="intport">发送邮件所用的端口号(htmp协议默认为25)</param>
///<param name="blnsslEnable">true表示对邮件内容进行socket层加密传输,false表示不加密</param>
///<param name="strCC">抄送人</param>
public static void SendMyEmailByCDO(string strserver,
string strtoMail,
string strfromMail,
string strsubject,
string stremailBody,
string strpassword,
int intport,
bool blnsslEnable,
string strCC)
{
SendMyEmailByCDO(strserver,
strtoMail,
strfromMail,
strsubject,
stremailBody,
strpassword,
intport,
blnsslEnable,
strCC,
null);
} ///<summary>
/// 构造函数
///</summary>
///<param name="strserver">发件箱的邮件服务器地址</param>
///<param name="strtoMail">收件人地址(可以是多个收件人,程序中是以“;"进行区分的)</param>
///<param name="strfromMail">发件人地址</param>
///<param name="strsubject">邮件标题</param>
///<param name="stremailBody">邮件内容(可以以html格式进行设计)</param>
///<param name="strpassword">发件人邮箱密码</param>
///<param name="intport">发送邮件所用的端口号(htmp协议默认为25)</param>
///<param name="blnsslEnable">true表示对邮件内容进行socket层加密传输,false表示不加密</param>
/// <param name="strCC">抄送人</param>
/// <param name="files">附件</param>
public static void SendMyEmailByCDO(
string strserver,
string strtoMail,
string strfromMail,
string strsubject,
string stremailBody,
string strpassword,
int intport,
bool blnsslEnable,
string strCC,
List<string> files)
{
string stryourEmail = strfromMail;
CDO.Message message = new CDO.Message();
CDO.IConfiguration configuration = message.Configuration;
ADODB.Fields fields = configuration.Fields; Console.WriteLine(String.Format("Configuring CDO settings...")); ADODB.Field field = fields["http://schemas.microsoft.com/cdo/configuration/smtpserver"];
field.Value = strserver; field = fields["http://schemas.microsoft.com/cdo/configuration/smtpserverport"];
field.Value = intport; field = fields["http://schemas.microsoft.com/cdo/configuration/sendusing"];
field.Value = CDO.CdoSendUsing.cdoSendUsingPort; field = fields["http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"];
field.Value = CDO.CdoProtocolsAuthentication.cdoBasic; field = fields["http://schemas.microsoft.com/cdo/configuration/sendusername"];
field.Value = stryourEmail; field = fields["http://schemas.microsoft.com/cdo/configuration/sendpassword"];
field.Value = strpassword; field = fields["http://schemas.microsoft.com/cdo/configuration/smtpusessl"];
field.Value = blnsslEnable.ToString().ToLower(); fields.Update(); Console.WriteLine(String.Format("Building CDO Message...")); message.From = stryourEmail;
message.To = strtoMail;
message.Subject = strsubject;
message.BodyPart.Charset = "utf-8"; if (!string.IsNullOrEmpty(strCC))
{
message.CC = strCC;
} message.HTMLBody = stremailBody;
if (files != null)
{
foreach (string stritem in files)
{
message.AddAttachment(stritem);
}
} Console.WriteLine(String.Format("Attempting to connect to remote server...")); // Send message.
message.Send();
}
}
}

第二种

 // 版权所有 ZhuoYue Co.,Ltd 卓越一通秘密信息
// 文件名称:MyEmail.cs
// 作  者:huangzh
// 创建日期:2015-08-20 08:37:07
// 功能描述:邮件辅助类
// 任务编号:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Mail;
using System.Net.Mime;
using System.IO; namespace ZhuoYueE.Bpc.Core.Email
{
/// <summary>
/// 功能描述:邮件辅助类
/// 作  者:huangzh
/// 创建日期:2015-08-20 08:36:52
/// 任务编号:
/// </summary>
public class MyEmailBySmtp
{
/// <summary>
/// 主要处理发送邮件的内容(如:收发人地址、标题、主体、图片等等)
/// </summary>
private MailMessage m_mailMessage;
/// <summary>
/// 主要处理用smtp方式发送此邮件的配置信息(如:邮件服务器、发送端口号、验证方式等等)
/// </summary>
private SmtpClient m_smtpClient;
/// <summary>
/// 发送邮件所用的端口号(htmp协议默认为25)
/// </summary>
private int m_intsenderPort;
/// <summary>
/// 发件箱的邮件服务器地址(IP形式或字符串形式均可)
/// </summary>
private string m_strsenderServerHost;
/// <summary>
/// 发件箱的密码
/// </summary>
private string m_strsenderPassword;
/// <summary>
/// 发件箱的用户名(即@符号前面的字符串,例如:hello@163.com,用户名为:hello)
/// </summary>
private string m_strsenderUsername;
/// <summary>
/// 是否对邮件内容进行socket层加密传输
/// </summary>
private bool m_blnsnableSsl;
/// <summary>
/// 抄送
/// </summary>
private string m_strCC; ///<summary>
/// 构造函数
///</summary>
///<param name="strserver">发件箱的邮件服务器地址</param>
///<param name="strtoMail">收件人地址(可以是多个收件人,程序中是以“;"进行区分的)</param>
///<param name="strfromMail">发件人地址</param>
///<param name="strsubject">邮件标题</param>
///<param name="stremailBody">邮件内容(可以以html格式进行设计)</param>
///<param name="strusername">发件箱的用户名(即@符号前面的字符串,例如:hello@163.com,用户名为:hello)</param>
///<param name="strpassword">发件人邮箱密码</param>
///<param name="intport">发送邮件所用的端口号(htmp协议默认为25)</param>
///<param name="blnsslEnable">true表示对邮件内容进行socket层加密传输,false表示不加密</param>
///<param name="strCC">抄送</param>
public MyEmailBySmtp(
string strserver,
string strtoMail,
string strfromMail,
string strsubject,
string stremailBody,
string strusername,
string strpassword,
int intport,
bool blnsslEnable,
string strCC)
{
try
{ m_mailMessage = new MailMessage();
m_mailMessage.To.Add(strtoMail);
m_mailMessage.From = new MailAddress(strfromMail, strfromMail, Encoding.UTF8);
m_mailMessage.Subject = strsubject;
m_mailMessage.Body = stremailBody;
m_mailMessage.IsBodyHtml = true;
m_mailMessage.BodyEncoding = System.Text.Encoding.UTF8;
m_mailMessage.Priority = MailPriority.High;
m_mailMessage.CC.Add(strCC);
this.m_strsenderServerHost = strserver;
this.m_strsenderUsername = strusername;
this.m_strsenderPassword = strpassword;
this.m_intsenderPort = intport;
this.m_blnsnableSsl = blnsslEnable;
}
catch
{
throw;
}
} ///<summary>
/// 添加附件
///</summary>
///<param name="strattachmentsPath">附件的路径集合,以分号分隔</param>
public void AddAttachments(string strattachmentsPath)
{
try
{
//以什么符号分隔可以自定义
string[] path = strattachmentsPath.Split(';');
Attachment data;
ContentDisposition disposition;
for (int i = ; i < path.Length; i++)
{
data = new Attachment(path[i], MediaTypeNames.Application.Octet);
disposition = data.ContentDisposition;
disposition.CreationDate = File.GetCreationTime(path[i]);
disposition.ModificationDate = File.GetLastWriteTime(path[i]);
disposition.ReadDate = File.GetLastAccessTime(path[i]);
m_mailMessage.Attachments.Add(data);
} }
catch
{
throw;
}
} ///<summary>
/// 邮件的发送
///</summary>
public void Send()
{
try
{ if (m_mailMessage != null)
{
m_smtpClient = new SmtpClient();
m_smtpClient.Host = this.m_strsenderServerHost;
m_smtpClient.Port = m_intsenderPort;
m_smtpClient.UseDefaultCredentials = true;
m_smtpClient.EnableSsl = this.m_blnsnableSsl;
m_smtpClient.Credentials = new System.Net.NetworkCredential(this.m_strsenderUsername, this.m_strsenderPassword);
m_smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; m_smtpClient.Send(m_mailMessage);
} }
catch
{
throw;
}
}
}
}

为什么这里写了2中方式呢???

我相信大多数人发送邮件使用第二种,但是有时候第二种方式是发不出去的,那么什么情况发布出去呢???

答曰:

当你使用公司内部邮件服务器发送邮件,并且需要SSL加密的时候,你就呵呵一下,第二种不行了,然后你可以尝试第一种了,最少我这里是这种情况。

我现在发送邮件的一般都用第一种的代码了。

有什么问题,请留言吧。

c# 发送Email的2中方式的更多相关文章

  1. Python 发送 email 的两种方式

    Python发送email的两种方式,分别为使用登录邮件服务器.调用sendmail命令来发送三种方法 Python发送email比较简单,可以通过登录邮件服务来发送,linux下也可以使用调用sen ...

  2. [Python] 发送email的几种方式

    python发送email还是比較简单的,能够通过登录邮件服务来发送,linux下也能够使用调用sendmail命令来发送,还能够使用本地或者是远程的smtp服务来发送邮件,无论是单个,群发,还是抄送 ...

  3. 发送email给列表中的邮箱--python

    #!/usr/bin/python # -*- coding: utf-8 -*- # from email.Header import Header from email.MIMEText impo ...

  4. Android开发中怎样调用系统Email发送邮件(多种调用方式)

    在Android中调用其他程序进行相关处理,几乎都是使用的Intent,所以,Email也不例外,所谓的调用Email,只是说Email可以接收Intent并做这些事情 我们都知道,在Android中 ...

  5. 使用PHP发送email进行账号激活或者密码修改操作

    使用PHPMailer编写发送邮件 PHPMailer需PHP的socket扩展支持,而PHPMailer链接qq域名邮箱时需要ssl加密方式(qq邮箱最近做了限制,新开域名邮箱不再允许通过smtp协 ...

  6. 使用Spring发送Email

    配置Spring发送邮件 Spring发送邮件底层还是使用JavaMail,我在http://www.cnblogs.com/lz2017/p/6882925.html 中记录过关于JavaMail的 ...

  7. Log4j 发送 EMail 的配置

    项目上线后,运行时往往也还会有异常发生,在异常抛出时,希望即时的得到反馈.所以需要配置LOG4J的发送EMAIL功能. 项目中原来使用的的Log4j版本为1.2.9 ,但此版本并不支持邮件服务的认证功 ...

  8. 第19章-使用Spring发送Email

    1 配置Spring发送邮件 Spring Email抽象的核心是MailSender接口.顾名思义,MailSender的实现能够通过连接Email服务器实现邮件发送的功能,如图19.1所示. 图1 ...

  9. 廖雪峰Java13网络编程-2Email编程-1发送email

    1.邮件发送 1.1传统邮件发送: 传统的邮件是通过邮局投递,从一个邮局到另一个邮局,最终到达用户的邮箱. 1.2电子邮件发送: 与传统邮件类似,它是从用户电脑的邮件软件(如outlook)发送到邮件 ...

随机推荐

  1. MVC客户管理(添加、修改、查询、分页)

    ASP.NET MVC搭建项目后台UI框架—6.客户管理(添加.修改.查询.分页)   目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2 ...

  2. 从头开始学JavaScript (六)——语句

    原文:从头开始学JavaScript (六)--语句 一.条件分支语句:if 基本格式: if (<表达式1>){    <语句组1>}else if (<表达式2> ...

  3. duplicate symbol _*** in:

    duplicate symbol _kReachabilityChangedNotification in: 问题出在同一个文件被引用两次,在项目中找到引用的地方,删掉对应的引用

  4. 批处理获取IP地址

    setlocal ENABLEEXTENSIONS & set "i=0.0.0.0" & set "j=" for /f "toke ...

  5. Java初始阶段

    初时接触感觉Java与C语言有很多异曲同工之处. Java起源: Java之父:James Gosling 正式发布时间:1995年5月23日 其特点为:简单.面向对象.可移植.多线程.动态 其编译后 ...

  6. 吐槽一下项目中的代码坏味道:滥用java常量

    我们的项目中是否充斥着类似以下的代码呢?定义一个专门存放常量的java类(接口),非常多其它类依赖该常量类. public interface IConstant { int ZERO = 0; St ...

  7. Google maps API开发

    原文:Google maps API开发 Google maps API开发(一) 最近做一个小东西用到google map,突击了一下,收获不小,把自己学习的一些小例子记录下来吧 一.加载Googl ...

  8. Web API-属性路由

    路由(Routing)就是Web API如何将一个URI匹配到一个action的过程.Web API 2 支持一个新的路由方式-属性路由(attribute routing).顾名思义,属性路由使用标 ...

  9. JavaScript重载解读

    在JavaScript有一个特殊的数据类型---Function种类,JavaScript每个功能Function的类型,例如可以.由于函数是对象.指针,不会与某个函数绑定. <pre name ...

  10. 退出手机QQ依旧显示在线

    老婆说明明看到你手机QQ在线,怎么发信息不回复?这让我非常是冤枉,我明明退出了啊! 晚上宝宝睡觉后,我们一起来研究,发现了当中的秘密,原来仅仅要选择了"退出后仍接受消息通知"这个选 ...