【问题标题】:Sendgrid setup on SQL Database MailSQL 数据库邮件上的 Sendgrid 设置
【发布时间】:2021-09-24 07:49:30
【问题描述】:

我一直在尝试在 SQL 数据库邮件上设置 sendgrid,但一直显示无法将邮件发送到邮件服务器。

这就是我所做的。

  1. 我的 sendgrid 帐户是 abc@mydomain.com,并创建了 api 密钥和 SG.xxxx 密码。
  2. 由于这是产品设置实例,我已经完成了域级别的身份验证,并且我的网站管理员按照 sendgrid 的要求更新了 CNAME。
  3. 使用 TELNET smtp.sendgrid.net 587 进行测试,并使用 SG.xxxx 密码 Base64 编码进行身份验证,这能够将电子邮件从 abc@mydomain.com 发送到 xyz@mydomain.com
  4. 我使用 abc@mydomoain.com 作为 SQL 通知配置文件设置了配置文件,并选择了基本身份验证,并在数据库邮件中提供了“apikey”作为用户名和“SG.xxx”作为密码 - SQL SSMS 中的“配置数据库邮件”选项。未选中 -“服务器需要安全身份验证 (SSL) 连接”端口 587
  5. 我尝试使用“abc@domain.com”向“xyz@mydomain.com”“发送测试邮件”,但数据库邮件反映如下屏幕截图错误

我尝试在数据库邮件配置向导中使用 abc@mydomain.com 和 sendgrid 帐户密码进行基本身份验证,但 sendgrid 建议他们不接受基本身份验证。如果不在基本身份验证下,请帮助我应该如何以及在哪里传递 api 密钥? 我尝试使用 msdb.dbo.sysmail_add_account_sp 和更新记录进行更新,但它也没有解决并从数据库邮件发送电子邮件。

任何帮助/指导将不胜感激,或者如果您遇到此问题,您是如何解决的。

【问题讨论】:

  • 当 SendGrid 说它不接受基本身份验证时,这意味着您的帐户用户名和密码。像这样发送时,您应该使用用户名“apikey”和具有邮件发送权限的 API 密钥作为密码。当您在 SMSS 中设置身份验证凭据时,您仍然使用 base 64 编码吗?是否有更详细的错误消息可用?
  • 我尝试将用户名设置为“apikey”,并将“apikey”的 base64 编码为 YXBpa2V5。密码也是使用 linux 框中的 openssl 编码的 Base64 编码。无效
  • 对不起,我之前没有设置过。据我所知,使用基本身份验证时,用户名应该是“apikey”,密码应该是实际的 API 密钥。我对您的数据库配置中发生的事情一无所知。

标签: sendgrid database-mail


【解决方案1】:

你好解决方法如下

创建一个 dbmail 配置文件

  • 服务器名称:smtp.sendgrid.net
  • 端口:25

SMTP 身份验证

  • 基本认证
  • 用户名:apikey
  • 密码::{您的 sendgrid 帐户的 api-key}

就是这样。发送测试电子邮件。

如果它仍然不起作用,如果您在 AWS EC2 上,请确保安全组允许出站端口:25

这里是 sendgrid 关于 apikey 身份验证的链接。 https://docs.sendgrid.com/for-developers/sending-email/upgrade-your-authentication-method-to-api-keys

【讨论】:

  • 此外,如果您打算使用它来发送来自失败的 sql 代理作业的通知,请确保将此配置文件设置为数据库邮件配置文件,以用作发送电子邮件的默认设置。 SQL 代理上的属性,然后是“警报系统”和“启用邮件配置文件”
猜你喜欢
  • 1970-01-01
  • 2016-01-22
  • 1970-01-01
  • 2019-07-13
  • 1970-01-01
  • 2019-09-03
  • 2017-09-06
  • 2014-10-04
  • 2020-12-08
相关资源
最近更新 更多