邮件服务器配置:最佳实践和故障排除指南

本文为在 Endpoint Central 中配置邮件服务器设置提供全面指导,包括必备前提条件、支持的区域设置以及常见问题的详细故障排除。

1. 配置前提条件

1.1 启用 TLS 1.2(Office 365 集成必需)

问题: 由于安全协议过时或不受支持,邮件服务器认证失败。

原因: Endpoint Central 服务器未启用 TLS 1.2 或未将其设为默认协议。

解决方案:

确保以下注册表项设置正确:

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client\DisabledByDefault → 0
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client\Enabled → 1

此外,对于 Windows Server 2008 R2、Windows Server 2012 和 Windows 7:

  • 检查是否已安装 Microsoft 更新 'kb3140245'。
  • 检查以下注册表项是否包含值 '0x00000A00' 或 '0x00000800':HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp\DefaultSecureProtocols
  • 如果是 64 位机器,也检查 'Wow6432Node' 路径:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp\DefaultSecureProtocols
  • 如果注册表项不存在,请按 Microsoft 文档添加该注册表项。

2. 区域邮件服务器配置

2.1 Office 365(美国政府云 – .us)

问题: smtp.office365.us 的授权和令牌 URL 不会自动填充。

原因: Endpoint Central 不会自动填写政府云域的 OAuth URL。

解决方案:

登录至 https://portal.azure.us 并按照 本文档 中提到的步骤在 Azure 门户创建客户端 ID 和客户端密钥。

在邮件服务器设置中配置以下内容:

  • 服务器名称:smtp.office365.us
  • 端口:587
  • 授权 URL:https://login.microsoftonline.us/common/oauth2/v2.0/authorize
  • 令牌 URL:https://login.microsoftonline.us/common/oauth2/v2.0/token
  • 范围:offline_access https://outlook.office.com/SMTP.Send

2.2 Office 365 中国账户

问题: 标准 OAuth 配置在中国地区的 Office 365 域名下失败。

原因: 中国租户需要专用的身份验证终端。

解决方案:

登录至 https://portal.azure.cn 并按照 本文档 中提到的步骤在 Azure 门户创建客户端 ID 和客户端密钥。

注册 Azure 应用并配置以下设置:

  • 服务器名称:smtp.partner.outlook.cn
  • 端口:587
  • 授权 URL:https://login.chinacloudapi.cn/common/oauth2/authorize
  • 令牌 URL:https://login.chinacloudapi.cn/common/oauth2/token
  • 范围:https://partner.outlook.cn/SMTP.Send

2.3 Azure 应用 – 选择“多租户”

问题: 使用 common URL 对于单租户 Azure 应用时,OAuth 认证失败。

原因: 授权 Azure 应用时我们使用“https://login.microsoftonline.com/common/oauth2/v2.0/authorize”API。但2018年10月15日后创建的单租户应用不支持此 Microsoft API。建议配置 Azure 应用以支持任何组织目录账户(多租户)和个人 Microsoft 账户(例如 Skype、Xbox)。详情 请参阅链接.

解决方案:

注册 Azure 应用时选择:

“任何组织目录中的账户(多租户)”

如果想使用单租户应用:请在以下地址中将<common>替换为你的租户 ID:

  • 授权 URL:https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize
  • 令牌 URL:https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token

3. 认证与授权问题

3.1 认证失败 – Office 365

邮件服务器身份验证失败错误

问题: 错误信息:“无法发送邮件;认证失败”,发生在 Office 365 设置过程中。

原因: 常见原因包括缺少 SMTP 认证、发送者/用户名权限不正确或凭据过期。

解决方案:

确认你已按照正确的 Office 365 配置指南操作。

核实以下内容:

  • 使用的用户名有权代表发件人地址发送邮件。
  • Endpoint Central 需要启用 Office 365 中的 SMTP 客户端认证以成功发送邮件。此设置必须在 Office 365 管理门户启用。请参阅链接- 启用 SMTP Auth – Microsoft.
  • 用户名拥有 Exchange Online 许可证,且是注册 Azure 应用的账户。
  • Azure 应用已添加必要的 API 权限:
    • SMTP.Send、offline_access、User.Read
  • 如果使用中继服务器,请检查其是否有问题。

如问题仍存在,请参考:

3.2 “SendAsDenied” 异常

问题: 发送邮件失败,错误信息:SMTPSendFailedException: 554 5.2.252 SendAsDenied

原因: 认证用户无权限作为指定发件人地址发送邮件。

解决方案:

在 Office 365 中,每个用户账户绑定特定登录凭据,用户仅允许从自己的邮箱访问和发送邮件。未经授权,使用其他用户凭据发送邮件(如“代表发送”或“作为发送”)既不支持也不推荐。此限制用于保障安全,防止未经授权访问用户邮箱。

SMTPSendFailedException: 554 5.2.252 SendAsDenied 特指 “SendAsDenied” 错误,表明邮件服务器拒绝了作为指定发件人(发件人地址)发送邮件的尝试,因为权限不足。

解决此问题请在 Microsoft 365 管理中心为指定用户(即“发件人”地址中的用户)授予“代表发送”或“作为发送”权限。

3.4 错误:不支持的参数actionName

问题: 错误信息:“errorMsg”:“请求中检测到不支持的参数 actionName。”

原因: 产品通过 Tomcat 端口访问,未使用 HTTPS 连接端口。

解决方案:

  • 使用端口 8383 访问产品。
  • 若无效,打开 <server-path>/DesktopCentral_Server/conf/websettings.xml,检查配置的连接器端口,使用该端口访问产品控制台。
配置的连接器端口图片

3.5 授权请求被拒绝(O365)

问题: 错误:“授权请求被拒绝”,发生在邮件服务器设置期间。

授权请求被拒绝图片

原因: 该错误发生在用于认证的邮箱(即用户名字段)无权访问客户端 ID 和密钥,或应用注册时未授予第三方租户访问权限。

解决方案:

  • 确保使用的邮箱有权查看客户端 ID。
  • 确认应用注册时已启用第三方租户访问权限。

3.6 为什么生成新的访问令牌时会出现 INVALID_GRANT 错误?

问题: 错误信息:com.me.ems.onpremise.common.oauth.OauthException: INVALID_GRANT

原因:

在 Office 365 OAuth 中,INVALID_GRANT 错误通常在刷新令牌流程中出现,原因是刷新令牌不再有效或无法用于获取新的访问令牌。

Office 365 支持以下 OAuth 2.0 授权类型:

授权码授权:需要授权码以获取访问和刷新令牌。

隐式授权:直接返回访问令牌(不推荐用于服务器端应用)。

资源所有者密码凭据授权:已废弃且不安全,不推荐使用。

客户端凭据授权:用于无用户上下文的应用访问。

Endpoint Central 使用授权码授权流程,其中包含发放刷新令牌。当刷新令牌无效时,生成访问令牌失败,出现 INVALID_GRANT 错误。

INVALID_GRANT 的常见原因

  • 客户端密钥已过期。请在 Azure AD 中核实到期日期,如有需要请重新生成密钥。
  • 用户已撤销应用访问权限。
  • 应用已从用户授权应用列表中移除。
  • 刷新令牌长时间未使用,微软拒绝该令牌。
  • 授权码或重定向 URI 不正确或不匹配(初始设置中罕见情况)。

解决方案

  1. 在 Endpoint Central 中导航到 管理 > 邮件服务器设置。
  2. 通过 OAuth 重新认证并重新配置邮件服务器设置。
  3. 保存设置以生成新的有效访问令牌和刷新令牌。

4. 发送与配置后问题

4.1 邮件日志显示已发送,但未收到邮件

问题: 邮件日志显示投递成功,但收件人未收到邮件。

原因: 邮件可能被过滤、重定向或阻止。

解决方案:

  1. 检查垃圾邮件箱是否有 OTP 邮件。
  2. 检查是否有过滤器阻止邮件到达邮箱。
  3. 检查邮件是否在任何过滤器中被静默丢弃。如无,请联系邮件服务器管理员检查邮件追踪以确定丢失位置。

4.2 无法连接邮件服务器

问题: 错误:“无法连接邮件服务器;请使用 telnet 测试邮件服务器及端口连通性”

原因: 该错误发生在 Endpoint Central 服务器无法访问邮件服务器时,可能因防火墙限制或网络配置问题。

解决方案: 解决此问题请检查:

  • 从安装 Endpoint Central 的机器使用 Telnet 连接邮件服务器。
  • 确认 SMTP 连接端口允许通信。
  • 确保 Endpoint Central 应用已被允许发出外部连接。
  • 检查邮件服务器地址是否被防火墙或杀毒软件阻止。

如 Telnet 测试成功,但配置邮件服务器时仍出现“无法连接邮件服务器”错误,请检查防火墙是否存在连接重定向。如有,请添加例外允许运行该邮件服务器端口流量。

确认运行 Endpoint Central 的服务器已启用并强制 TLSv1.2,缺失 TLSv1.2 支持也会导致该错误。

解决连通性问题后应能成功配置邮件服务器。若问题依旧,请收集并提供相关日志以供进一步分析。

5. 协议废弃通知

5.1 基础认证废弃(Gmail 和 Office 365)

问题

从 2022 年 5 月 31 日起,使用 Gmail 配置邮件服务器的用户可能遇到认证相关错误。

此外,现有的 Gmail 配置可能停止由 Endpoint Central 发送邮件。主页上还可能显示横幅消息:

“邮件服务器配置不正确。”

原因

该问题由 Google 和 Microsoft 废弃邮件通信基础认证引起:

  • Google 自 2022 年 5 月 30 日起强制使用 OAuth 2.0。
  • Microsoft 自 2022 年 10 月 1 日起强制使用 OAuth 2.0。

因此:

  • 新用户使用基础认证配置 smtp.gmail.com 或 smtp.office365.com 时可能出错。
  • 2022 年 5 月 31 日后,已有的 Gmail 基础认证配置可能停止工作。

解决方案

推荐解决方案

升级到最新版本的 Endpoint Central 并配置邮件服务器设置为 OAuth 认证。请参考以下相关文档:

Gmail 在废弃基础身份验证后仍支持应用专用密码。

要继续接收邮件而不升级:

  1. 从 Gmail 账户生成应用专用密码。
  2. 在邮件服务器设置中使用该密码代替常规账户密码。

受到以下公司的信赖