用C#(ASP.Net)在Exchange Server环境下发送邮件

普通的邮件, 用System.Net.Mail 类 或 System.Web.Mail 类 处理即可, 但是Exchange Server 环境下,
这两个类起不了作用-------至少目前我看到的情况如此.

整个过程如下:

1. 先添加COM 引用 "Microsoft CDO for Windows 2000 Library" .
2.
发送邮件的代码:


CDO.Message msg = new CDO.Message();

string passWord="passWord";

string from = "[email protected]";

string server = "192.168.0.0";
//使用HTML格式发送


msgLync.BodyPart.Charset = "gb2312";  //编码,确保内容不会乱码
msgLync.HTMLBody
= "<div style=‘color:red‘>你好吗。。。来自服务器自动发送邮件</div>";

msg.From = from;
msg.To = from;
msg.Subject = "test mail";
msg.TextBody = "test.";

CDO.IConfiguration iConfig = msg.Configuration;

ADODB.Fields fields = iConfig.Fields;

fields["http://schemas.microsoft.com/cdo/configuration/sendusing"].Value = 2;

fields["http://schemas.microsoft.com/cdo/configuration/sendemailaddress"].Value = from;

fields["http://schemas.microsoft.com/cdo/configuration/sendpassword"].Value = passWord;

fields["http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"].Value = 1;

fields["http://schemas.microsoft.com/cdo/configuration/smtpserver"].Value = server;

fields.Update();

try

{

msg.Send();

msg = null;

}

catch (Exception ex)

{

throw;

}

其中, fields的这五个属性是它所有可选属性的最紧的一个子集, 即,这五个属性是缺一不可的, 其它的属性还有:
http://schemas.microsoft.com/cdo/configuration/smtpaccountname

http://schemas.microsoft.com/cdo/configuration/smtpuserreplyemailaddress

http://schemas.microsoft.com/cdo/configuration/sendusername

等.

奇怪的是, msg 本身也有fields 属性, 或者如同程序中引用的:
msg.Configuration.Fields, 但是如果不用上述程序中的方法, 而是直接引用 msg的Fields 或
msg.Configuration.Fields 属性, 则不能成功发送邮件, (没有错误或异常, 但是收不到邮件) 为什么会这样,
有点费解.

fields 的smtpauthenticate 属性的取值也是挺有意思的, 当它取0时, 代表无需验证,
1代表基本的验证, 2是NTLM验证, 可是我在Outlook里把验证方式设为NTLM, 而在这里把值取为1, 一样能够发送成功, 呵呵, 看来一般情况下取1
都是可以的了.

sendUsing 取2 的意思是, 强制通过smtpServer 属性指定的server 发送邮件,
所以只要server属性设置好, sendUsing取2 基本就是通用值了.

server属性设为exchange server 的IP 地址即可.

时间: 2024-10-10 15:06:06

用C#(ASP.Net)在Exchange Server环境下发送邮件的相关文章

wamp server环境下mysql数据库的密码为什么修改不了?

每次这个控制台,不输入密码可以直接用,用root登录都登录不了.修改root密码也修改不了.困惑? 经过不断的尝试终于找到解决的办法: 1,在mysql的配置文件my.ini的末尾添加 skip-grant-tables,保存,重启mysql 2,直接没密码登录mysql 3,敲入命令:use mysql 4,UPDATE user SET password=PASSWORD("new password") WHERE user='username'; 5,看到提示的修改成功后,去掉m

Exchange Server 2010下,检测用户密码到期通知提醒脚本

############################################ #Author:wangtingdong #Email:[email protected] #For:检测AD密码过期时间并邮件通知 #Version:1.0 ############################################## Import-Module Activedirectory #@1和@2选择一个执行 #@1检索出指定OU里不包含设置了永不过期及禁用的账户 #$allad

linux》centos6.1.环境下发送邮件设置

转自https://blog.csdn.net/bodybo/article/details/80817968 一. Sendmail安装 在CentOS下,sendmail一般默认是随操作系统一起安装的.如果安装系统时没有安装sendmail服务,手动安装sendmail也很简单: # yum install -y sendmail # yum install -y sendmail-cf 二. Senmail的SMTP认证配置(不需要认证的可忽略此步) 首先确认saslauthd服务是否安装

Exchange Server 2013部署(一)环境介绍及架构准备

Exchange Server 2013部署(一)环境介绍 Exchange Server 2013提供了新的技术功能和服务特性:相对于之前Exchange 2007和Exchange 2010的5角色而言,Exchange Server 2013只包括如下的2个服务器角色: 客户端访问服务器角色(CAS):该角色用于接受来自Internet的Microsoft Office Outlook.Outlook Web App.移动设备. POP和SMTP的所有连接.客户端访问服务器可以组建客户端访

通过Postfix构建Exchange Server 2010邮件网关部署系列一:创建新域环境

在企业部署邮件平台实例中,我们不仅仅只是完成Exchange Server 2010平台的搭建,我们还需要考虑到Exchange如何发布?端口有哪些?邮件网关用什么样的? 那么关于端口发布部分我们后期会再介绍,本次我们主要介绍利用开源平台下的Postfix如何实现邮件网关功能,来保证企业邮件的安全性. 在系列部署系列第一讲中,我主要介绍最基本的如何搭建域环境,来满足Exchange Server 2010搭建的基础要求. [演示环境IP地址信息]     [演示环境主机名] 新建域控制器:  

Exchange Server 2016安装部署系列一:Exchange 简述,环境需求及部署规划

Exchange Server 2016简述 MicrosoftExchange Server 2016 为 Exchange Server(提供电子邮件.日程安排和用于自定义协作与消息传送服务应用程序的工具的消息传送平台)引入了一组新技术.功能和服务.它的目标是支持人们和组织将工作重心从通信转移到协作.同时 Exchange 2016 还可以帮助降低总拥有成本(无论是部署本地 Exchange 2016 还是在云中预配邮箱) Exchange 2016 体系架构中,服务器角色分为: 邮箱服务器

VM workstation典型安装Exchange Server 2010服务器

典型安装Exchange Server 2010服务器 需求分析 BDQN公司已经部署了Windows Server 2008的AD域,域名为"benet.local".企业需要在内部建立邮件系统,满足企业内部员工之间的邮件通信.并需要配置邮件客户端,满足企业内部员工之间的邮件收发. BDQN公司需要为公司的员工Tim创建邮箱,并且限制其邮箱的大小为40MB,收发邮箱的大小为15MB.为经理创建邮箱的大小为100MB,收发邮件的大小为50MB. 另外,由于公司与三名客户(alice.B

Install Exchange Server 2013 on Windows Server 2008

OS 要求 Exchange Server 2013可以部署在Windows Server 2012的平台也可以部署在Windows Server 2008 R2的平台.如果部署在Windows Server 2008 R2平台要求操作系统版本为Windows Server 2008 R2 SP1的版本? 安装服务器角色 : PowerShell中执行如下命令 , 打开Windows PowerShell 运行如下命令来加载服务器管理器模块 ? Import-Module ServerMana

Exchange Server 2013 部署

服务器环境 先决条件 https://technet.microsoft.com/zh-cn/library/aa996719(v=exchg.150).aspx 安装服务器角色功能 Install-WindowsFeature AS-HTTP-Activation, Desktop-Experience, NET-Framework-45-Features, RPC-over-HTTP-proxy, RSAT-Clustering, Web-Mgmt-Console, WAS-Process-