在 Azure 中排查出站 SMTP 连接问题
从虚拟机 (VM) 直接发送到外部域(例如 outlook.com)的出站电子邮件将仅适用于 Azure 中的某些订阅类型。
重要
对于以下示例,该过程主要适用于虚拟机和 VM 规模集资源(Microsoft.Compute/virtualMachines
和 Microsoft.Compute/virtualMachineScaleSets
)。 对于在 Azure 应用服务和 Azure Functions 上通过虚拟网络集成功能进行出站通信或在使用应用服务环境 v3 时,可以使用端口 25。 还可以通过 Azure 防火墙发送端口 25 出站通信。 但是,以下所述的订阅限制仍然适用。 对于所有其他 Azure 平台即服务 (PaaS) 资源,不支持在端口 25 上发送电子邮件。
推荐的电子邮件发送方法
建议使用经过身份验证的 SMTP 中继服务从 Azure VM 或 Azure 应用服务发送电子邮件。 (这些中继服务通常通过 TCP 端口 587 连接,但它们支持其他端口。)这些服务用于维护 IP 和域信誉,以尽量降低外部域拒绝邮件或将其放到 SPAM 文件夹的可能性。 SendGrid 就是这样一个 SMTP 中继服务,但还有其他服务。 你在本地服务器上可能还有一个经过身份验证的 SMTP 中继服务。
在 Azure 中使用这些电子邮件传递服务不受限制(无论是哪种订阅类型)。
企业和 MCA-E
对于在标准企业协议订阅中部署或适用于企业 (MCA-E) 订阅的的 VM 和 Azure 防火墙,TCP 端口 25 上的出站 SMTP 连接不会受到阻止。 但是,不保证外部域将接受来自 VM 和 Azure 防火墙的传入电子邮件。 对于被外部域拒绝或筛选的电子邮件,联系外部域的电子邮件服务提供商解决问题。 Azure 支持不包含这些问题。
对于 Enterprise 开发/测试订阅,默认情况下会阻止端口 25。
可以删除这项阻止。 若要请求删除这项阻止,请转到 Azure 门户中 Azure 虚拟网络资源的“诊断和解决”部分的“无法发送电子邮件(SMTP-端口 25)”部分,并运行诊断程序。 此过程会自动豁免符合条件的企业开发/测试订阅。
使订阅不受此阻止并停止再重启 VM 后,该订阅中的所有 VM 在此后都会被豁免。 该豁免仅适用于请求的订阅,并且仅适用于直接路由到 Internet 的 VM 流量。
所有其他订阅类型
对于已部署的 VM,Azure 平台会阻止 TCP 端口 25 上的出站 SMTP 连接。 此块是为了确保为 Azure 合作伙伴和客户提供更好的安全性,保护 Azure 平台,并且符合行业标准。
如果使用非企业协议或 MCA-E 的订阅类型,建议使用经过身份验证的 SMTP 中继服务(如本文前面部分所述)。
更改订阅类型
如果将订阅类型从企业协议或 MCA-E 更改为另一种订阅类型,对部署所做的更改可能导致出站 SMTP 被阻止。
需要帮助? 联系支持人员
如果使用企业协议订阅或 MCA-E,并仍然需要帮助,请联系支持人员,以便快速解决问题。 使用以下问题类型:“技术”>“虚拟网络”>“无法发送电子邮件(SMTP/端口 25)”。