Sendgrid返回202但不发送电子邮件

时间:2017-02-13 21:40:23

标签: sendgrid

我试图获得基本的" hello world" sendgrid的工作,但到目前为止都没有成功。响应返回代码202,表明它将发送电子邮件,但电子邮件永远不会发送。有谁知道发生了什么?

import sendgrid

sg = sendgrid.SendGridAPIClient(apikey='**my-api-key**')
data = {
  "personalizations": [
    {
      "to": [
        {
          "email": "me@gmail.com"
        }
      ],
      "subject": "Hello World from the SendGrid Python Library!"
    }
  ],
  "from": {
    "email": "me@gmail.com"
  },
  "content": [
    {
      "type": "text/plain",
      "value": "Hello, Email!"
    }
  ]
}
response = sg.client.mail.send.post(request_body=data)
print(response.status_code)

8 个答案:

答案 0 :(得分:5)

我刚遇到此问题:我使用SendGrid创建了一个帐户并尝试使基本示例正常工作,API会返回202响应,但电子邮件从未发送过,the SendGrid web UI's activity feed显示没有活动。

submitted a SendGrid support ticket并且大约8小时后收到回复,说他们已经停止了我的帐户发送电子邮件的能力:

  

您好,

     

感谢您联系SendGrid支持!

     

您的帐户似乎已被我们的合规团队关闭,这就是问题的原因。

     

要重新启动,我们想了解更多关于您将通过SendGrid发送的电子邮件的信息。请详细说明以下内容:

     
      
  1. 您的业务性质,您提供的服务以及潜在客户群

  2.   
  3. 您的发送频率和音量

  4.   
  5. 如何收集收件人地址(链接到选择页面或注册过程)

  6.   
  7. 您将如何允许收件人选择退出您的电子邮件(您是否计划使用SendGrid的一键取消订阅功能,或者如果您有自己的方法)

  8.   
  9. 您要发送的邮件类型(交易或营销)

  10.         

    请尽快回复,以便继续激活过程。谢谢你的合作!

在提交答案后约15个小时,我收到一条回复,说我的帐户已被“激活”:

  

嗨nathan.wailes,

     

感谢您提供更多信息!您的SendGrid帐户已经   已激活,现在可用于发送电子邮件。要开始,请检查   我们的Getting Started页面。

     

如果你在设置时遇到任何障碍,你可以找到   解决常见问题和我们Knowledge Base中的常见问题解答。

     

如果您还有其他问题,请与我们联系!

     

最佳,

     

Stevin O。

     

助理支持工程师

当我运行基本示例代码并将我的电子邮件地址设置为收件人时,电子邮件会立即显示在我的Gmail收件箱中。

答案 1 :(得分:2)

通过转到此处的sendgrid api日志来调试它: https://app.sendgrid.com/email_activity

就我而言,这是一个接收域名的DMARC。

答案 2 :(得分:1)

以防有人遇到类似问题,寻找答案。我通过用DNS记录确认域来解决了相同的问题-之后,一切都像魅力一样工作了。

在Sendgrind中:设置>发送者身份验证>域身份验证

答案 3 :(得分:0)

我最近遇到了同样的问题。我的电子邮件没有任何原因未发送,响应状态为202,电子邮件活动为空。可能的解决方案是添加公司详细信息,然后在电子邮件中添加取消订阅的阻止。那对我有用。

我正在实现密码重置功能,对此有一个取消订阅的块有点奇怪。我将尝试弄清这种沉默抑制的真正原因是什么。可能是因为我试图多次发送草稿的调试电子邮件,看起来像是垃圾邮件。也许SendGrid有一些智能算法可以检测到这一点。

答案 4 :(得分:0)

我也遇到了这个问题。我联系了sendgrid支持人员,但是在等待期间,我将伪数据更改为真实的数据,并以此来调用sendgrid API。

尤其是我将电子邮件地址从更改为显示自己的域。

答案 5 :(得分:0)

未验证DNS并且未在from email中使用注册电子邮件时,发生了相同的问题。 只需更改from email即可注册电子邮件。

答案 6 :(得分:0)

从 SendGrid 返回的 202 Accepted Status Code 并不真正表示邮件已成功发送到收件人收件箱。它表示消息有效并且已经“排队等待发送”。现在,由接收服务器将该邮件发送到收件人收件箱,或者将其发送到垃圾邮件,或者直接丢弃该邮件。

从 SendGrid 返回 202 Accepted Status 代码的邮件实际上并未发送到收件人收件箱的原因有多种。 例如:

  1. 电子邮件地址无效:电子邮件地址可能不再有效(例如,当员工停止在某家公司工作时,他们的电子邮件可能会从公司的系统中删除,从而无法接收任何电子邮件).
  2. 被阻止的电子邮件:如果发送 IP 或域被阻止,或者如果收件人收件箱提供商设置了一些过滤器,以便您的电子邮件/活动的某些特定内容被视为垃圾邮件,因此会被自动阻止.

另一件需要注意的事情是,如果域身份验证没有正确设置,SendGrid 可能会将邮件发送到垃圾邮件/垃圾邮件。因此,请确保您的域通过了正确的身份验证。

这里是 SendGrid 文档的链接,其中详细解释了这些事件。 https://sendgrid.com/blog/delivered-bounced-blocked-and-deferred-emails-what-does-it-all-mean/

答案 7 :(得分:0)

我遇到了同样的问题,并通过添加具有完全访问权限的新 api 密钥来解决

相关问题