先来第一种

 // 版权所有 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. Linux GPIO 注册和应用

    Linux GPIO 注册和应用 Linux Kernel, GPIO, ARM 于Linux kernel代码.经常使用 GPIO 作为一个特殊的信号,如芯片片选信号. GPIO 功能应用,我们经常 ...

  2. Java迭代器[转]

    迭代器是一种模式,它可以使得对于序列类型的数据结构的遍历行为与被遍历的对象分离,即我们无需关心该序列的底层结构是什么样子的.只要拿到这个对象,使用迭代器就可以遍历这个对象的内部. 1.Iterator ...

  3. AspNet.WebAPI.OData.ODataPQ

    AspNet.WebAPI.OData.ODataPQ实现WebAPI的分页查询服务 AspNet.WebAPI.OData.ODataPQ实现WebAPI的分页查询服务-(个人拙笔) AspNet. ...

  4. Ajax得知(两)—— 一个简单的Ajax示例

    通过部分博客认识Ajax之后,我们通过一个简单的实例来消化消化理论知识,一睹Ajax的庐山真面目. 1.实例功能: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZ ...

  5. sql server drop talbe 自动删除关联的外键 ,权限体系(一)

    if object_id('Proc_DropTableWithFK') is not null begin drop proc dbo.Proc_DropTableWithFK end GO ) a ...

  6. Set Matrix Zeroes -- LeetCode

    原题链接: http://oj.leetcode.com/problems/set-matrix-zeroes/ 这是一个矩阵操作的题目,目标非常明白,就是假设矩阵假设有元素为0,就把相应的行和列上面 ...

  7. java-list-remove()用法浅析 解决java list remove() 数据不对的问题

    在java中对list进行操作很频繁,特别是进行list启遍历,这些操作我们都会,也很熟悉,但是对java中list进行删除元素,remove list中的元素就不怎么熟悉了吧,可以说很陌生,是实际操 ...

  8. js 正则之 控制字符 \cX

    原文:js 正则之 控制字符 \cX 前些天在司徒正美的群里有人问了这么个问题:正则表达式里特殊字符 \cX 到底是什么?确实,我之前也挺在意的,但是一直没去看到底是什么.在MDN上只说是控制字符(详 ...

  9. PL/SQL个人学习笔记(二)

    IF条件 declare cursor s is            select version from city_server t;   s_ city_server.version%type ...

  10. MySQL安装指南

    近期领导突然说要用MySQL,我立刻当天晚上就研究了一下. http://www.mysql.com/这是官网,还好能够訪问.好多年前已经被oracle收购.分为企业版和社区版: MySQL Ente ...