本文出自 “叶俊生” 博客,请务必保留此出处http://yejunsheng.blog.51cto.com/793131/175814

讨论: 邮件流概览
有哪些邮件流场景? 入站邮件流 出站邮件流 本地邮件流 远程邮件流
集线器传输服务器和边缘传输服务器有什么不同?
什么是SMTP连接器? SMTP连接器是Exchange服务器组件,用来支持单向SMTP连接
SMTP接收连接器: 从其他服务器接收SMTP邮件 必须使用单独的集合(端口,侦听的IP地址和接收的远程IP地址)
SMTP发送连接器: 发送SMTP邮件到其他服务器 发送邮件到任何SMTP服务器
20032873
打开Exchange 管理控制台--展开服务器配置--按集线器传输--可以看到在接收连接器里面有二个接收连接器 一个是Client +本地计算机名称(EXCHANGE2007) 一个是Default +本地计算机名称(EXCHANGE2007) Default EXCHANGE2007这个连接器是用于从其它的SMTP服务器接收邮件 Client EXCHANGE2007这个连接器是用于客户端从客户端接收邮件的
邮件传输组件-->见下面列表:
组件 描述
Submission queue 在邮件被处理前将邮件存储在磁盘
Store driver 从发件人的发件箱接收邮件
Microsoft Exchange Mail Submission service 当在发件人的发件箱中有邮件可以用于接收时通知本地活动目录站点内的集线器传输服务器
Pickup directory 提交邮件到提交队列(Submission queue)
Categorizer 从提交队列(Submission queue) 一次处理一封邮件
在Exchange服务器组织中邮件如何路由的-->见下图:
20032874
配置集线器传输服务器过程: 配置集线器传输服务器: 1.配置服务器范围的设置 2.配置授权域和E-mail地址策略 3.配置一个postmaster邮箱 4.配置Internet邮件流 5.配置邮件策略 6.配置管理权限
用于监视和排错邮件传输的工具: 邮件流排错工具 队列查看器 邮件跟踪 协议日志
邮件传输排错步骤: 正确的确定问题的范围 使用邮件跟踪定位未投递的邮件 确实是哪一种邮件流 使用队列错误消息来确定潜在的问题解决方案 使用邮件流排错工具来确定潜在的问题解决方案 解决问题
20032875
我现在来到一台计算机名称叫做DC的计算机 它是森林中第一台域控制器同时是一台DNS服务器 我已经在这台域控制器上安装Exchange Server 2007的邮箱服务器角色、集线器传输服务器角色和客户端访问服务器角色了 它的IP地址是192.168.0.2 DNS是192.168.0.2 打开Exchange管理控制台--展开收件人配置--按邮箱--可以看到Admin(发件人)这个用户的邮箱是在dc上的 而Administrator(收件人)这个用户的邮箱是在exchange2007上的 这两个用户的邮箱分别在两台不同的服务器上 但是这两台服务器都是位于同一个站点 因为它们的IP地址是在同一个网段的 当我使用Admin这个用户发送邮件给Administrator这个用户的时候 其实是一个本地的邮件流 现在我去人为地制造故障
20032876
待会我使用到的那几台计算机的IP地址都是在192.168.0.0这个网段的 所以它们都属于Default-First-Site-Name这个站点
20032877
在C盘上有一个叫做Exchange2007.ps1的脚本 打开这个脚本可以看到里面的内容 它把Exchange 的MailSubmission这个服务停止掉 MailSubmission这个服务是跑在邮箱服务器上的 这个服务有什么用呢? 如果发现用户邮箱的Outlook里面有邮件要出去的时候 它就会向集线器传输服务器发送通知的 第二是把exchange2007这台服务器上的Microsoft Exchange Information Store这个服务停止掉 停止后的结果会是什么样的呢? 因为收件人(administrator)的邮箱所在的服务器的Information Store这个服务被停止掉了 收件人(administrator)是收不到这封电子邮件的 集线器传输服务器是没有办法把这封邮件投递到收件人的邮箱里面 打开Exchange 命令行管理程序--输入cd \按回车键--输入./Exchange2007.ps1按回车键
20032878
可以看到已经把第一台控制器上的Microsoft Exchange 邮件提交(MailSubmission)这个服务停止掉了
20032879
可以看到也把Exchange2007这台服务器的Microsoft Exchange Information Store这个服务停止掉了 我把发件人(admin)的邮箱所在的邮箱服务器(DC)的MailSubmission这个服务停止了 然后把收件人(administrator)的邮箱所在的邮箱服务器(Exchange2007)的Information Store这个服务也停止了 接下来就是发送一封邮件出去测试一下了 注意: 我已经在Exchange2007这台计算机上安装Exchange Server 2007的邮箱服务器角色、集线器传输服务器角色和客户端访问服务器角色了
20032880
我来到一台计算机名称叫做WindowsXP的客户端 它的IP地址是192.168.0.23 DNS服务器的地址是192.168.0.2 我已经把这台客户端加入yejunsheng.com这个域中了 打开Microsoft Office Outlook 2007 我使用Admin这个用户登录邮箱 在Outlook 2007里面按新建--在收件人里面选择Administrator这个用户--主题和内容都输入Test Local吧 按发送
20032881
我在DC这台计算机上打开Exchange 管理控制台--按工具箱--打开队列查看器--可以看到没有刚才发送的那一封邮件 邮件计数是0 如果你到Exchange2007那台计算机上打开队列查看器的话 你会发现也看不到刚才发送的那一封邮件的 邮件计数同样是0
20032882
我现在把DC这台计算机上的Microsoft Exchange 邮件提交(MailSubmission)服务启动起来 对着Microsoft Exchange 邮件提交这个服务右键--选择启动 当DC这驉计算机上的Microsoft Exchange 邮件提交服务启动起来之后就会开始发送一个通知了 它有可能会通知DC这台计算机上的集线器传输服务器也可能会通知Exchange2007那台计算机上的集线器传输服务器 一般来讲它肯定通知DC这台计算机的 因为这台计算机跟它是放在一起的
20032883
我来到WindowsXP这台客户端 在Admin这个用户的邮箱里面按已发送邮件可以看到已经有一个发送给Administrator这个用户的备份邮件了
20032884
在DC这台计算机上打开队列查看器--在队列里面可以看到下一跃点域是exchange2007.yejunsheng.com 就是说它要把刚才发送的那一封邮件投递给这台邮箱服务器了 DC上的Store drive是以Mapi的方式连接到收件人所在的邮箱服务器的 但是一直在重试
20032885
我来到Exchange2007这台计算机把Microsoft Exchange Information Store这个服务启动起来 对着Microsoft Exchange Information Store这个服务右键--选择启动
20032886
我来到DC这台计算机 打开队列查看器--在队列里面可以看到这封邮件已经投递成功了
假如有一家公司开了分公司 然后把Exchange2007这台服务器搬到分公司了 分公司是一个AD的站点 是一个新的活动目录站点 如果我还是从Admin这个用户发送邮件到Administrator这个用户的话 此时邮件投递就变成了一个远程投递了 因为Exchange服务器被移动到新的活动目录站点了 这就是一种跨站点的邮件投递了
20032887
我来到一台计算机名称叫做Router的计算机 它有二块网卡 我已经在这台计算机上启用了路由和远程访问功能了 现在这台计算机就作为路由器来使用了 打开路由和远程访问--展开IP路由选择--按常规--可以看到第一块网卡(本地连接)的IP地址是192.168.0.32 第二块网卡(本地连接2)的IP地址是192.168.1.32
20032888
我在Exchange2007这台服务器上添加一个192.168.1.3的IP地址 我把它分成两个物理子网
20032889
我来到DC这台计算机 打开Active Directory站点和服务--可以看到我提前新建了一个叫做BranchOffice的站点--然后我把192.168.1.0这个子网跟BranchOffice这个活动目录站点做一个相关
20032890
展开Inter-Site Transports--对着DEFAULTIPSITELINK右键--选择属性 可以看到我使用了一个默认的站点链接来连接BranchOffice和Default-First-Site-Name这两个站点 在Exchange Server 2007里面组织内部的邮件路由都是基于活动目录站点的
20032891
我来到Exchange2007这台服务器制造故障 我把一个叫做Exchange2007.ps1的脚本拷贝到C盘里面 打开这个脚本可以看到里面的内容 打开Exchange 命令行管理程序--输入cd \按回车键--输入C:\Exchange2007.ps1按回车键
20032892
打开Exchange 管理控制台--展开服务器配置--按集线器传输--在创建筛选器里面按EXCHANGE2007 在接收连接器里面对着Default EXCHANGE2007右键--选择属性--按网络--可以看到在远程IP地址里面已经出现192.168.1.32(路由器第二块网卡的IP地址)这个IP地址了 这样就限制了只能是路由器能够连接到接收连接器了 路由器连接到接收连接器干嘛呢? 邮件是通过DC这台计算机的集线器传输服务器传过来的 不是通过路由器传过来的 路由器只是一个中间站而已 只是转发数据包的节点而已 它又不是一台邮件服务器 所以说在远程IP地址里面填入路由器的IP地址(192.168.1.32)就错了
20032893
可以看到Exchange2007这台计算机上的Microsoft Exchange 传输这个服务也被停止掉了 接下来我们继续做测试
20032894
我来到WindowsXP这台客户端 我使用Admin这个用户发送一封电子邮件给Administrator这个用户 在Outlook2007里面按新建--在收件人里面选择Administrator这个用户--主题和内容都输入Test Remote吧--按发送 这封邮件肯定是被邮箱所在的邮箱服务器通过MailSubmission这个服务通知了DC上的集线器传输服务器 DC已经把这封邮件放到队列里面了
20032895
我来到DC这台计算机--打开队列查看器--在队列里面可以看到一封还没有被提交的邮件 可能这封邮件一直在队列里面等待投递
20032896
你可以使用邮件跟踪这个功能查看到Admin这个用户发送给Administrator这个用户的所有邮件 如果你想知道为什么这封邮件不能投递成功的话可以使用邮件流疑难解答程序来查到详细结果