你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

针对从 SAP NetWeaver 出站的电子邮件的 Exchange Online 集成

从 SAP 后端发送电子邮件是一项标准功能,广泛应用于批处理作业警报、SAP 工作流状态更改或账单分发等用例。 许多客户使用本地 Exchange Server 建立了此设置。 随着向 Microsoft 365Exchange Online 转变,出现了一组影响该设置的云原生方法。

本文介绍从基于 NetWeaver 的 SAP 系统到 Exchange Online 的出站电子邮件通信的设置。 这适用于 SAP ECC、S/4HANA、SAP RISE 托管系统和任何其他基于 NetWeaver 的系统。

概述

现有的实现依赖于 SMTP 身份验证和提升的信任关系,因为旧版本地 Exchange Server 可能靠近 SAP 系统本身,并且由客户自己管理。 使用 Exchange Online 时,责任和连接模式发生了变化。 Microsoft 将 Exchange Online 作为软件即服务产品提供,其旨在让你能够通过公共 Internet 从世界任何地方安全且尽可能高效地使用它。

请按照我们的标准指南了解要通过 Microsoft 365 发送电子邮件的“设备”的常规配置。

警告

SMTP 身份验证(用于客户端提交的基本身份验证)将永久禁用。 在此处查找确切的时间线。 我们强烈建议客户尽快停用基于 SMTP 身份验证技术的基本身份验证。 建议改用选项 3。

安装注意事项

目前,我们想要介绍 SAP NetWeaver 支持的 4 个不同的选项。 前三个选项与 Exchange Online 文档中描述的场景相关。

  1. SMTP 身份验证客户端提交(即将停用!
  2. SMTP 直接发送
  3. 使用 Exchange Online SMTP 中继连接器(推荐
  4. 使用 SMTP 中继服务器作为连接到 Exchange Online 的中介

为简洁起见,我们仅通过事务代码 SCOT 提及了用于设置邮件服务器的 SAP Connect 管理工具

当有更多 SAP 支持的选项可用时,我们将更新本指南。

选项 1:SMTP 身份验证客户端提交(即将停用!)

重要

我们强烈建议不要使用此选项 SMTP 身份验证即将停用。 在此处查找确切的时间线。 建议改用选项 3。

如果要向组织内外人员发送邮件,请选择此选项。

在 SCOT 中使用 SMTP Auth 终结点 smtp.office365.com 将 SAP 应用程序直接连接到 Microsoft 365。

需要具有有效的电子邮件地址,才能向 Microsoft 365 进行身份验证。 用于向 Microsoft 365 进行身份验证的帐户的电子邮件地址将显示为来自 SAP 应用程序的邮件的发件人。

SMTP AUTH 的要求

  • SMTP AUTH:需要为要使用的邮箱启用。 SMTP AUTH 对于 2020 年 1 月之后创建的组织禁用,但可按邮箱启用。 有关详细信息,请参阅在 Exchange Online 中启用或禁用经过身份验证的客户端 SMTP 提交 (SMTP AUTH)
  • 身份验证:使用基本身份验证(只是用户名加密码)从 SAP 应用程序发送电子邮件。 如果有意为组织禁用 SMTP 身份验证,则必须使用选项 2、3 或 4。
  • 邮箱:必须具有许可的 Microsoft 365 邮箱才能从中发送电子邮件。
  • 传输层安全性 (TLS):SAP 应用程序必须能够使用 TLS 1.2 及更高版本。
  • 端口:端口 587(推荐)或端口 25 是必需的,必须在网络上取消阻止它们。 某些网络防火墙或 Internet 服务提供商会阻止端口,尤其是端口 25,因为这是电子邮件服务器用于发送邮件的端口。
  • DNS:使用 DNS 名称 smtp.office365.com。 不要对 Microsoft 365 服务器使用 IP 地址,因为 IP 地址不受支持。

如何对 Exchange Online 中的邮箱启用 SMTP AUTH

可以通过两种方式在 Exchange Online 中启用 SMTP AUTH:

  1. 针对覆盖租户范围设置的单个帐户(每个邮箱),或者
  2. 在组织级别。

注意

如果身份验证策略禁用了 SMTP 的基本身份验证,则即使启用了本文所述的设置,客户端也无法使用 SMTP AUTH 协议。

你可在 Microsoft 365 管理中心或通过 Exchange Online PowerShell 获得用于启用 SMTP 身份验证的每邮箱设置。

  1. 打开 Microsoft 365 管理中心,然后转到“用户”->“活动用户”。

    管理中心 - 活跃用户

  2. 选择用户,按照向导操作,然后单击“邮件”。

  3. 在“电子邮件应用”部分中,单击“管理电子邮件应用”。

    管理中心 - 管理电子邮件

  4. 验证“经过身份验证的 SMTP”设置(未选中 = 已禁用,选中 = 已启用)

    管理中心 - SMTP 设置

  5. 保存更改。

这将为 Exchange Online 中的单个用户启用 SCOT 所需的 SMTP 身份验证。

配置 SCOT 的 SMTP Auth

  1. 对 SAP 应用程序服务器的端口 587 上的 smtp.office365.com 进行 ping 或 telnet 操作,以确保端口处于打开状态且可访问。

    ping 的屏幕截图

  2. 请确保在实例配置文件中设置了 SAP Internet 通信管理器 (ICM) 参数。 请参阅此示例:

    parameter
    icm/server-port-1 PROT=SMTP,PORT=25000,TIMEOUT=180,TLS=1
  3. 从 SMICM 事务重启 ICM 服务,并确保 SMTP 服务处于活动状态。

    ICM 设置的屏幕截图。

  4. 激活 SICF 事务中的 SAPConnect 服务。

    SICF 中的 SAP 连接设置

  5. 转到 SCOT,然后如下所示选择 SMTP 节点(双击)来继续配置:

    SMTP 配置

    添加端口为 587 的邮件主机 smtp.office365.com。 如需参考,请查看 Exchange Online 文档

    SMTP 配置(续)

    如果需要,单击“安全”字段旁边的“设置”按钮,添加 TLS 设置和基本身份验证详细信息,如第 2 点所述。 请确保相应地设置 ICM 参数。

    请确保使用有效的 Microsoft 365 电子邮件 ID 和密码。 此外,它还需要是你在开始时为 SMTP Auth 启用的同一用户。 此电子邮件 ID 将显示为发件人。

    SMTP 安全性配置

    返回到上一个屏幕:单击“设置”按钮,然后选中“支持的地址类型”下的“Internet”。 使用通配符“*”选项将可无限制地将电子邮件发送到所有域。

    SMTP 地址类型

    SMTP 地址区域

    下一步:在 SCOT 中设置默认域。

    SMTP 默认域

    SMTP 默认地址

  6. 计划作业,将电子邮件发送到提交队列。 从 SCOT 选择“发送作业”:

    SMTP 计划要发送的作业

    提供作业名称和变量(如果适用)。

    SMTP 计划作业变体

    使用事务代码 SBWP 测试邮件提交,使用 SOST 事务检查状态。

SMTP AUTH 客户端提交的限制

  • SCOT 仅存储一位用户的登录凭据,因此只能以此方式配置一个 Microsoft 365 邮箱。 通过单个 SAP 用户发送邮件需要实现 Microsoft 365 提供的“发送方式权限”。
  • Microsoft 365 会施加一些发送限制。 有关详细信息,请参阅 Exchange Online 限制 - 接收和发送限制

选项 2: SMTP 直接发送

Microsoft 365 提供了从 SAP 应用程序服务器配置直接发送的功能。 此选项的使用存在限制。 它只允许将邮件发送到你自己的 Microsoft 365 组织中具有有效电子邮件地址的地址, 而不能用于发送到外部收件人(例如供应商或客户)。

仅在以下情况下选择此选项:

  • Microsoft 365 环境禁用了 SMTP AUTH。
  • SMTP 客户端提交(选项 1)与业务需求或 SAP 应用程序不兼容。
  • 你无法使用直接发送(选项 2),因为你必须向外部收件人发送电子邮件。

SMTP 中继允许 Microsoft 365 使用配置有公共 IP 地址或 TLS 证书的连接器代表你中继电子邮件。 与其他选项相比,连接器设置增加了复杂性。

SMTP 中继的要求

  • SAP 参数:已配置 SAP 实例参数并激活 SMTP 服务,如选项 1 中所述,请按照“使用 SCOT 配置 SMTP Auth”部分中的步骤 2-4 进行操作。
  • 电子邮件:某个 Microsoft 365 验证域中的任何电子邮件地址。 此电子邮件地址不需要邮箱。 例如 noreply@*yourdomain*.com
  • 传输层安全性 (TLS):SAP 应用程序必须能够使用 TLS 1.2 及更高版本。
  • 端口:端口 25 是必需的,须在网络上取消阻止它。 某些网络防火墙或 ISP 会阻止端口,尤其是端口 25,因为存在误用于垃圾邮件的风险。
  • MX 记录:邮件交换器 (MX) 终结点,例如 yourdomain.mail.protection.outlook.com。 在下一部分中查找详细信息。
  • 中继访问:需要公共 IP 地址或 SSL 证书才能针对中继连接器进行身份验证。 若要避免配置直接访问,建议使用源网络转换 (SNAT),如本文中所述。 用于出站连接的源网络地址转换 (SNAT)

Microsoft 365 中 SMTP 中继的分步配置说明

  1. 获取终结点的公共(静态)IP 地址,该终结点将使用上面文章中列出的方法之一发送邮件。 不支持或不允许使用动态 IP 地址。 可以与其他设备和用户共享静态 IP 地址,但不要与公司外部的任何人共享该 IP 地址。 记下此 IP 地址供以后使用。

    在 Azure 门户上检索公共 IP 的位置

注意

使用 SAP 应用程序服务器的虚拟机概述在 Azure 门户上查找上述信息。

  1. 登录 Microsoft 365 管理中心

    Microsoft 365 AC 登录

  2. 转到“设置” ->“域”,选择域(例如 contoso.com),然后查找邮件交换器 (MX) 记录。

    在哪里检索域 mx 记录

    邮件交换器 (MX) 记录将包含指向地址或值的数据,其看起来类似于 yourdomain.mail.protection.outlook.com

  3. 记下邮件交换器 (MX) 记录(我们称之为 MX 终结点)的指向地址或值的数据。

  4. 在 Microsoft 365 中,选择“管理员”,然后选择“Exchange”,以转到新的 Exchange 管理中心。

    Microsoft 365 管理中心

  5. 这将打开新的 Exchange 管理中心 (EAC) 门户。

    Microsoft 365 管理中心邮箱

  6. 在 Exchange 管理中心 (EAC) 中,请转到“邮件流”->“连接器”。 “连接器”屏幕如下所示。 如果你使用的是经典 EAC,请遵循文档中所述的步骤 8。

    Microsoft 365 管理中心连接器

  7. 单击“添加连接器”

    Microsoft 365 管理中心连接器添加

    选择“组织的电子邮件服务器”。

    Microsoft 365 管理中心邮件服务器

  8. 单击“下一步”。 这将出现“连接器名称”屏幕。

    Microsoft 365 管理中心连接器名称

  9. 提供连接器的名称,然后单击“下一步”。 这将显示“正在验证已发送的电子邮件”屏幕。

    选择“通过验证发送服务器的 IP 地址是否与专属于你的组织的这些 IP 地址之一匹配”,然后添加“Microsoft 365 中 SMTP 中继的分步配置说明”部分的步骤 1 中的 IP 地址。

    Microsoft 365 管理中心验证 IP

    查看并单击“创建连接器”。

    Microsoft 365 管理中心查看

    Microsoft 365 管理中心查看安全性设置

  10. Microsoft 365 设置配置完毕后,请转到域注册机构的网站以更新 DNS 记录。 编辑发件人策略框架 (SPF) 记录。 包括在步骤 1 中记下的 IP 地址。 完成的字符串应该类似于 v=spf1 ip4:10.5.3.2 include:spf.protection.outlook.com \~all,其中 10.5.3.2 是公共 IP 地址。 跳过此步骤可能会导致电子邮件被标记为垃圾邮件,并最终进入收件人的“垃圾邮件”文件夹。

SAP 应用程序服务器中的步骤

  1. 确保 SAP ICM 参数和 SMTP 服务已激活,如选项 1(步骤 2-4)中所述
  2. 请在 SMTP 节点中转到 SCOT 事务,如选项 1 前面的步骤中所示。
  3. 添加邮件主机,即步骤 4 中记录的邮件交换器 (MX) 记录值 (yourdomain.mail.protection.outlook.com)。

SCOT 中的 SMTP 配置

邮件主机:yourdomain.mail.protection.outlook.com

端口:25

  1. 单击“安全”字段旁的“设置”,确保启用 TLS(如果可能)。 此外,请确保不存在有关 SMTP AUTH 的先前登录数据。 否则,请删除现有记录,并在其下方显示相应的按钮。

    SCOT 中的 SMTP 安全性配置

  2. 使用 SAP 应用程序中的测试电子邮件和事务 SBWP 测试配置,并检查 SOST 事务中的状态。

选项 4:使用 SMTP 中继服务器作为 Exchange Online 的中间服务

中间中继服务器可以替代从 SAP 应用程序服务器到 Microsoft 365 的直接连接。 此服务器可以基于任何允许直接身份验证和中继服务的邮件服务器。

此解决方案的优点是,它可以部署在 Azure 环境中的中心辐射型虚拟网络的中心, 或用于在 DMZ 内保护 SAP 应用程序主机免受直接访问。 它还允许集中式出站路由,以便在从多个应用程序服务器发送邮件时立即将所有邮件流量分流至中央中继。

其配置步骤与 Microsoft 365 SMTP 中继连接器(选项 3)相同。 唯一的区别是 SCOT 配置应引用将执行中继的邮件主机,而不是直接指向 Microsoft 365。 根据用于中继的邮件系统,它还将直接配置为使用受支持的方法之一和具有密码的有效用户连接到 Microsoft 365。 建议直接从中继发送测试邮件,以确保它可与 Microsoft 365 成功通信,然后再完成 SAP SCOT 配置并测试其是否正常。

中继服务器体系结构

显示的示例体系结构演示了中心内包含单个邮件中继主机的多个 SAP 应用程序服务器。 根据要发送的邮件量,建议遵循要用作中继的邮件供应商的详细大小调整指南。 这可能需要多个使用 Azure 负载均衡器运行的邮件中继主机。

后续步骤

了解 Azure Twilio-SendGrid 的群发邮件

了解 Exchange Online 服务限制(例如附件大小、邮件限制、限流等)

验证用于支持 Exchange Online 集成的 ABAP SDK for Azure 配置