设为首页 收藏本站
查看: 2160|回复: 0

[经验分享] Windows Server 2008 R2 配置Exchange 2010邮件服务器并使用EWS发送邮件

[复制链接]

尚未签到

发表于 2015-4-29 11:50:58 | 显示全部楼层 |阅读模式
目录
  


  • 配置环境
  • 安装准备
  • 安装Exchange Server 2010

    • 准备情况检查中的3个警告和1个错误


  • 配置连接器

    • 新建发送连接器
    • 配置接收连接器
    • 配置远程域属性
    • 设置DNS


  • 新建邮箱
  • 测试收发
  • 编写C#程序用EWS(Exchange WebService)发送邮件

    • 示例下载


  • 测试程序发送邮件
  • 故障排除
  

配置环境


配置环境完全在此前一篇文章搭建好的环境下进行配置:

http://www.iyunv.com/zhongweiv/archive/2013/01/04/win2008_addomain_configuration.html

Windows版本:Windows Server 2008 R2 Enterprise

                     Service Pack 1

系统类型:       64 位操作系统

所在域:          adserv.com

Exchange版本:Exchange Server 2010 (x64) - DVD (Chinese-Simplified, Chinese-Traditional, English, French, German, Italian, Japanese, Korean, Portuguese-Brazil, Russian, and Spanish)         





安装准备


  • 安装DNS服务器
  • 安装AD域服务
  • 安装IIS
  • 安装.NetFramework 3.5 SP1
  
  安装准备第1、2、3步都在此前的文章中有详细的安装步骤和配置方法:
    http://www.iyunv.com/zhongweiv/archive/2013/01/04/win2008_addomain_configuration.html
    http://www.iyunv.com/zhongweiv/archive/2013/01/07/https.html
    安装准备第4步 .NetFramework 3.5 SP1 不是必须的,Exchange Server 2010安装时会做检查,可以在安装Exchange Server 2010时同步安装.

  

安装Exchange Server 2010

  我这里是ISO文件,我在直用虚机中的光驱加载,并点击运行 Setup.EXE
   DSC0000.jpg
  步骤 1、2都是灰色的,我提前安装了.Net Framework 3.5 SP1,Windows Server 2008 R2自带安装了Windows PowerShell V2
  单独下载地址:
  http://www.microsoft.com/zh-cn/download/details.aspx?id=25150
  http://support.microsoft.com/kb/968929/zh-cn


  步骤 3: 选择 Exchange 语言选项
            点击“仅从 DVD 安装语言”
DSC0001.jpg


  步骤 4: 安装 Microsoft Exchange
            点击后出现复制窗口
DSC0002.jpg
  复制完成,初始化好安装程序,会出现Exhcange Server 2010安装界面
DSC0003.jpg
  点击“下一步”按钮
   DSC0004.jpg
  选择"我接受许可协议中的条款",点击“下一步”按钮
DSC0005.jpg
  点击“下一步”按钮
DSC0006.jpg
  点击“下一步按钮”
DSC0007.jpg
  输入Exchange 组织名称,点击“下一步”按钮
DSC0008.jpg
  勾选上"客户端访问角色将面向 Internet"  (如果只供内网访问,可以不勾选)
  输入域名,点击“下一步”按钮
   DSC0009.jpg
  这一步随自已选择,然后点击“下一步”按钮,进入“准备情况检查”
DSC00010.jpg
  出现3个警告和1个错误
  ①警告:组织先决条件
DSC00011.jpg
  解法方法:忽略
  ②警告:集线器传输角色 先决条件
DSC00012.jpg
  解决方法:按照提示去 http://go.microsoft.com/fwlink/?LinkID=123380 下载 FilterPackx64.exe ,并安装它.
  ③警告:邮箱角色 先决条件
DSC00013.jpg
  ④错误:客户端访问 先决条件
DSC00014.jpg
  解决方法:开始菜单--->管理工具--->服务--->找到“Net.Tcp Port Sharing Service”--->启动类型设为“自动”,并且启用此服务
  
  进行上面这些操作之后,重启服务器,再运行Exchange Server 2010安装程序!
DSC00015.jpg
  点击“安装”按钮, 安装时间可能比较长.
DSC00016.jpg
DSC00017.jpg
  点击完成.


配置连接器

  当Exchange Server 2010安装完成后,会自动弹出 Exchange 管理控制台
DSC00018.jpg
  
  新建"发送连接器"
  在左侧控制台树,中选择Microsoft Exchange--->Microsoft Exchange的内部部署--->组织配置--->集线器传输--->右键“新建发送连接器”
   DSC00019.jpg
  输入连接器名称,点击“下一步”按钮
   DSC00020.jpg
   选择“添加”菜单,点击“SMTP 地址空间”
   DSC00021.jpg
  在弹出框中输入如图,点击“下一步”按钮
   DSC00022.jpg
  刚添加的“SMTP 地址空间”就会出现在列表中,直接“下一步”
   DSC00023.jpg
  选择如图,点击“下一步”按钮
   DSC00024.jpg
  直接“下一步”
   DSC00025.jpg
  确认配置信息,点击“新建”
DSC00026.jpg
  查看新建状态,点击“完成”
DSC00027.jpg
  
  配置"接收连接器"
  在左侧控制台树,中选择Microsoft Exchange--->Microsoft Exchange的内部部署--->服务器配置--->集线器传输--->接收连接器
  --->双击Client Porschev--->配置如下图
DSC00028.jpg
DSC00029.jpg
  在左侧控制台树,中选择Microsoft Exchange--->Microsoft Exchange的内部部署--->服务器配置--->集线器传输--->接收连接器
  --->双击Default Porschev--->配置如下图
DSC00030.jpg
DSC00031.jpg
  
  配置远程域属性
  http://technet.microsoft.com/zh-CN/library/bb124931(v=exchg.141).aspx
  在左侧控制台树,中选择Microsoft Exchange--->Microsoft Exchange的内部部署--->组织配置--->集线器传输--->选择“远程域”--->双击列表中的“Default”--->进行如下图配置
DSC00032.jpg
DSC00033.jpg
  
  设置DNS
  控制面板--->网络和 Internet--->网络和共享中心--->本地连接--->属性--->Internet 协议版本 4(TCP/IPv4属性)--->属性
  --->高级--->DNS选择卡--->添加本地IP
DSC00034.jpg

  

新建邮箱,测试收发

  在左侧控制台树,中选择Microsoft Exchange--->Microsoft Exchange的内部部署--->收件人配置--->邮箱--->右键“新建邮箱”
DSC00035.jpg
  选择“用户邮箱”,点击“下一步”按钮
DSC00036.jpg
  选择“新建用户”,点击“下一步”按钮
DSC00037.jpg
  输入必要信息,点击“下一步”按钮
DSC00038.jpg
  输入别名,指定数据库
DSC00039.jpg
  点击“下一步”按钮
DSC00040.jpg
  点击“新建”按钮
DSC00041.jpg
  “邮箱-整个林”中就可以看见新建的邮箱,为了测试,我建了两个邮箱
DSC00042.jpg
  在AD域中查看,这两个用户也同样创建了域用户

  

测试收发

  在局域网中的另外一台机器上访问Exchange Web版:https://192.168.206.103/owa/
                        或者 https://mail.adserv.com/owa/   (在DNS管理中手动添加mail.adserv.com的解析)
  
  测试发送邮件
  用创建的zw帐号登录,登录成功,表示Exchange安装配置没有什么问题
DSC00043.jpg
  发送一封邮件给另一个测试帐号,发送成功!
DSC00044.jpg
  用测试收邮件帐号登录,收件箱中有刚发的测试邮件!
DSC00045.jpg
  
  至此,Exchange Server 2010环境搭建和收发邮件的配置就已完成!
  
  参考资料:
  http://technet.microsoft.com/zh-cn/library/bb124558(v=exchg.141).aspx
  http://wenku.baidu.com/view/720dc0114431b90d6c85c71d.html

  

编写C#程序用EWS(Exchange WebService)发送邮件

  EWS的地址:https://mail.adserv.com/ews/Services.asmx
  或者:https://mail.adserv.com/ews/exchange.asmx
  通过浏览器访问:
DSC00046.jpg
  输入用户名,密码登录
DSC00047.jpg
  
  新建一个Web Application项目,添加Web引用:https://192.168.206.103/ews/Services.asmx
DSC00048.jpg
DSC00049.jpg
DSC00050.jpg
  
  发送邮件代码:



using System;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
using ExchangeEWS.com.adserv.mail;
namespace ExchangeEWS
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{               
}
protected void btnSend_Click(object sender, EventArgs e)
{
bool resultVal = SendMailExchange(txtSendAccount.Text.Trim(),
txtSendPwd.Text.Trim(),
txtSendEmail.Text.Trim(),
txtRecEmail.Text.Trim(),
txtDomain.Text.Trim(),
txtEws.Text.Trim(),
"测试邮件主题",
"测试EWS发送邮件正文");
if (resultVal)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('发送成功')");
}
else
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('发送失败')");
}               
}
#region## Send mail (Exchange)
///
/// Function:   Send mail (Exchange)
/// Created by: Wilson Zhong
/// Data:       2012-12-11
///
/// Credential user name   [example: user1]
/// Credential user password     [example: abcd]
/// Sender email [example: user1@adserv.com]
/// Recipient email  [example: user2@adserv.com]
/// Domain name   [example: adserv.com]
/// EWS URL [example: https://mail.adserv.com/ews/exchange.asmx]
/// Email subject
/// Email body
///
public static bool SendMailExchange(string credentialUserName, string credentialUserPwd, string senderEmail, string recipientEmail, string domainName, string ewsUrl, string subjectName, string bodyVal)
{
SetCertificatePolicy();
ExchangeServiceBinding esb = new ExchangeServiceBinding();
esb.Credentials = new NetworkCredential(credentialUserName, credentialUserPwd, domainName);
esb.Url = ewsUrl;
CreateItemType createItemRequest = new CreateItemType();
// Specifiy how the created items are handled
createItemRequest.MessageDisposition = MessageDispositionType.SendAndSaveCopy;
createItemRequest.MessageDispositionSpecified = true;
// Specify the location of sent items.
createItemRequest.SavedItemFolderId = new TargetFolderIdType();
DistinguishedFolderIdType sentitems = new DistinguishedFolderIdType();
sentitems.Id = DistinguishedFolderIdNameType.sentitems;
createItemRequest.SavedItemFolderId.Item = sentitems;
// Create the array of items.
createItemRequest.Items = new NonEmptyArrayOfAllItemsType();
// Create a single e-mail message.
MessageType message = new MessageType();
message.Subject = subjectName;
message.Body = new BodyType();
message.Body.BodyType1 = BodyTypeType.HTML;
message.Body.Value = bodyVal;
message.ItemClass = "IPM.Note";
message.Sender = new SingleRecipientType();
message.Sender.Item = new EmailAddressType();
message.Sender.Item.EmailAddress = senderEmail;
message.ToRecipients = new EmailAddressType[1];
message.ToRecipients[0] = new EmailAddressType();
message.ToRecipients[0].EmailAddress = recipientEmail;
message.Sensitivity = SensitivityChoicesType.Normal;
// Add the message to the array of items to be created.
createItemRequest.Items.Items = new ItemType[1];
createItemRequest.Items.Items[0] = message;
try
{
// Send the request to create and send the e-mail item, and get the response.
CreateItemResponseType createItemResponse = esb.CreateItem(createItemRequest);
// Determine whether the request was a success.
if (createItemResponse.ResponseMessages.Items[0].ResponseClass == ResponseClassType.Error)
{
//throw new Exception(createItemResponse.ResponseMessages.Items[0].MessageText);
return false;
}
else
{
return true;
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return false;
}
}
#endregion
#region## Certificate
///   
/// Function:   Set the certificate policy
/// Create by:  Wilson Zhong
/// Data:       2012-12-11
///   
private static void SetCertificatePolicy()
{
ServicePointManager.ServerCertificateValidationCallback
+= RemoteCertificateValidate;
}
///   
/// Function:    Remote certificate validation
/// Created by:  Wilson Zhong
/// Data:        2012-12-11   
///   
private static bool RemoteCertificateValidate(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors error)
{
return true;
}
#endregion
}
}
  

测试程序发送邮件

  运行程序,输入必要项,测试发送.
DSC00051.jpg
  登录Web版Exchange,查看是否收到邮件
DSC00052.jpg
  
  至此,用EWS发送邮件也成功!
  
  Demo下载:http://files.iyunv.com/zhongweiv/ExchangeEWS.zip
  
  EWS的功能很明显不会只有发邮件,更多EWS相关资料:
  http://msdn.microsoft.com/en-us/library/exchangewebservices(v=exchg.140).aspx
  http://msdn.microsoft.com/zh-cn/library/exchange/dd877030(v=exchg.140).aspx

  

故障排除

  问题描述:在最初安装配置完成后,能正常访问Exchange的Web页面,但是输入用户名和密码怎么也登录不成功,一直提示用户名密码不正确
  问题解决:反复确认用户名和密码确实没有输入错误后,发现IIS中“安全性”下都没有安装,装上“基本身份验证”和“Windows 身份验证”后,上述问题不会再出现!

  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-61906-1-1.html 上篇帖子: Exchange日常管理之四简化OWA登陆 下篇帖子: Windows 2008 R2下安装Exchange 2010 (14.0.639.21)的必要条件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表