需要使用到邮箱时,很多小伙伴都会选择使用outlook邮箱这款软件。在outlook邮箱中写邮件时如果我们中途被打断了,我们可以将未完成的邮件保存到草稿箱中,方便后续继续进行编......
2023-01-11
在大多数的企业应用场景中,都会遇到第三方平台或应用程序使用 Exchange 的 SMTP 服务发送邮件的情况,在我个人所遇到的客户项目中,多数都是由 ERP 或 CRM 等平台去调用 Exchange SMTP 进行邮件投递。该需求 Exchange Server 2016 可以很好地满足,但如何选择和如何配置 Exchange Server 2016 SMTP 中继则需要按客户端应用的需求场景。
Exchange Server 2016 通常会遇到两种类型的 SMTP 中继场景:
我们先来看看两种不同的场景区别,再来具体分析实际应用场景中需要考虑的一些细节。
当 Exchange Server 2016 首次部署完成之后,将会自动预配置一个允许接收匿名发件人的接收器用于接收来自 Internet 到内部收件的人电邮。该自动创建的默认接收连接器不仅允许接收 Internet 的入站电子邮件,也同样适用的 SMTP 内部中继场景。
该接收连接器的默认名称为”服务器名Default Frontend 服务器名“,我们可以在 EMS 中使用如下命令查看到:
Get-ReceiveConnector
同时,我们可以使用 Telnet 进行 SMTP 连接来测试接收连接器:
telnet mail1 25
具体的常用 SMTP 命令建议大家 Google 自学。
接着上面的演示示例,我们来看看使用 Telnet 从一个有效的内部地址发邮件给外部联系人会发生什么:
从上图中大家已经看到,此时会返回一个“550 5.7.54, Unable to relay recipient in non-accepted domain” SMTP 错误,这表示接收连接器不允许匿名将未经验证的发件人传递给外部域名,这样的默认设置可以防止 Exchange Server 2016 被不怀好意的人作为开放中继利用。
如果你的应用场景需要使用设备或第三方应用给外部人员发送邮件,有如下两种方式可以实现:
下面我们就以上两种方式的配置分别进行一下介绍。
第一种方式便是配置使用 SMTP 连接身份验证。Exchange Server 2016 用于客户端的接收链接器默认命名为”服务器名Client Frontend 服务器名”
要让 Exchange Server 2016 SMTP 中继身份认证能够正常工作,要求至少为正确配置了 Exchange Server 2016 SSL 证书,并为使用 SMTP 的设备或第三方应用配置了正确的 DNS 别名。如果前提条件确认无误,则只需为接收连接器配置好 TLSCertificateName 即可:
1先使用 Get-ExchangeCertificate 确认要使用的 SSL 证书指纹。
Get-ExchangeCertificate
2由于 TLSCertificateName 字符串的语法由证书的两个不同属性组成,因此用于下列命令应用到配接收连接器:
$cert = Get-ExchangeCertificate -Thumbprint 31CDD8E30237AA41ABBD2D15D10B552DBED68436
$tlscertificatename = "$($cert.Issuer)$($cert.Subject)"
Set-ReceiveConnector "Client Frontend MAIL1" -Fqdn maiFl.office26.com -TlsCertificateName $tlscertificatename
3为了测试 Client Frontend 连接器,我们可以使用 PowerShell 的 Send-MailMessage cmdlet 来替代 Telnet 进行测试:
$credential = Get-Credential
Send-MailMessage -SmtpServer mail.office26.com -Credential $credential -From 'administrator@office26.com' -To 'xxxx@test.com' -Subject 'Test email' -Port 587 -UseSsl
如果将 SMTP 外部中继使用身份验证的方式在你的场景不适用,管理员可以考虑在 Exchange Server 2016 中创建发送邮件设备和第三方应用 IP 或 IP 范围的匿名 SMTP 中继接收接收器。创建步骤如下:
1打开Exchange 管理中心 — 邮件流 — 接收连接器
2点击 + 号按向导创建一个新的接收连接器,名称自己写,角色选择前端传输,类型选择自定义。
3删除默认远程网络设置的 IP 范围(极重要),再添加上允许匿名的设备或第三方应用的 IP 地址或范围。
4导向中配置完成后,打开 Exchange Management Shell 执行如下两条命令更改接收连接器权限:
Set-ReceiveConnector "ANONYMOUS RELAY MAIL1" -PermissionGroups AnonymousUsers
Get-ReceiveConnector "ANONYMOUS RELAY MAIL1" | Add-ADPermission -User 'NT AUTHORITYAnonymous Logon' -ExtendedRights MS-Exch-SMTP-Accept-Any-Recipient
注意:命令可以照抄,但接收连接器名称总会改成你自己环境的吧!
配置完成之后大家便可以使用 Telnet 测试被允许的 IP 地址是否已被允许从任何(有效内部)电子邮件地址发送邮件到外部地址了。
相关文章
需要使用到邮箱时,很多小伙伴都会选择使用outlook邮箱这款软件。在outlook邮箱中写邮件时如果我们中途被打断了,我们可以将未完成的邮件保存到草稿箱中,方便后续继续进行编......
2023-01-11
在Outlook邮箱中写邮件时我们通常都会设置一定的文本格式,比如设置想要的字体字号,设置行间距段间距等等。但是有时候我们会发现这些设置文本格式的相关功能是灰色的不可......
2023-01-11
在Outlook邮箱中有一个“密件抄送”功能,使用该功能我们可以将邮件发送给收件人的同时秘密抄送给其他收件人。如果我们经常需要使用到密件抄送功能我们就可以将其添加到......
2023-01-11
在Outlook邮箱中写邮件时我们有时候会将同一封邮件发送给多个收件人,抄送给其他收件人等等,如果有需要我们还可以将邮件密件抄送给其他人,收件人不会看到添加到密件抄送栏......
2023-01-11
Outlook邮箱是很多企事业单位个体都在使用的一款办公软件,其中有许多非常强大的功能可以满足我们编辑和处理各种邮件的各种需求。在Outlook邮箱中有一个“已读回执”功能......
2023-01-11