sp-send-dbmail - 由于“中继访问被拒绝”而阻止 Azure Sql 托管实例数据库邮件发送到外部电子邮件
问题描述
我们的数据库服务器已从本地迁移到 Azure SQL 托管实例,并且似乎无法将数据库邮件发送到外部电子邮件地址,但它适用于内部(我们的域)电子邮件地址。抛出的具体错误如下:
消息:无法向邮件服务器发送邮件。(邮箱不可用。服务器响应为:5.7.64 TenantAttribution;中继访问被拒绝 [PU1APC01FT013.eop-APC01.prod.protection.outlook.com])
我们在为 Azure 中的托管实例启用和配置数据库时遵循了 Microsoft 指南,并使用了以下资源来协助进行故障排除:
https://techcommunity.microsoft.com/t5/azure-sql/sending-emails-in-azure-sql-managed-instance/ba-p/386235 https://techcommunity.microsoft.com/t5/azure-sql /疑难解答-数据库-邮件问题-in-azure-sql-managed/ba-p/583018
我们已经按照说明正确命名了邮件配置文件,并按照说明正确设置了邮件帐户,使用基本身份验证通过 SSL/TLS 在端口 25 上使用有效 Exchange 邮箱用户。Azure nsg(防火墙)已配置为允许 TCP 端口 25 等。等等
我也查看了 Office365 交换配置,但无法设置连接器,因为我们的 Azure SQL 托管实例没有公共 IP 地址,但我们不应该需要连接器,因为我们在尝试发送邮件时进行身份验证SQL 服务器。
有没有人成功地让这个工作?
解决方案
经过与 SQL 和 Exchange MS 支持团队的大量研究、反复试验和数小时的电话沟通后,我们已经成功地完成了这项工作。本质上,我们在阅读本文后对 SQL DB 邮件帐户进行了更改以使其正常工作。我们通过从文章中提到的连接选项 3 转移到连接选项 1 来实现这一点。具体来说,我们在端口 25(而不是端口 587)上使用了 smtp.office365.com,并勾选了与基本身份验证结合使用的安全连接框。
推荐阅读
- excel - 使用 SUMPRODUCT 对矩阵的不同行求和
- google-apps-script - 有没有办法将文件和文件夹存档到 Google Drive 中的特定文件夹并保留文件夹路径?
- sql - SQL - 请求五个表
- python - 如何将txt读取为没有符号的数据框
- react-native - Iphone 如何在 React Native 中存储和自动填写密码/电子邮件?
- javascript - 如何在javascript中将HTML文件内容作为字符串获取
- android - 将辅助 GPS 与离子框架集成
- javascript - 将大 JSON 文件加载到本地存储以进行模糊搜索
- php - 如何使用 Laravel 将保存在 firebase 存储中的图像的 url 获取到变量中
- docker - GitLab 无法在我的服务器上运行我的图像