首页 > 解决方案 > 使用 sendgrid 发送电子邮件失败并出现 500 内部错误

问题描述

我正在使用 SoftLayer APISoftLayer_Network_Message_Delivery_Email_Sendgrid向我的 Slack 频道发送电子邮件。

我有时会从安静中得到 API 响应代码 500。我正在发布我在下面收到的错误消息

{“错误”:“超出最大信用”,“代码”:“SoftLayer_Exception_Network_Message_Delivery_Email_Sendgrid_Api_Error”}500

我用来发送电子邮件的代码如下:

curl -w %{http_code} -v -H "Content-Type: application/json" -d '{"parameters": [{ "body": "body","containsHtml": false,"from": "no-reply@noreply.com","subject": "Problem with system backup!", "to": "<EmailID/Slack ID>"}]}' 'https://<username>:<API Key>@api.service.softlayer.com/rest/v3/SoftLayer_Network_Message_Delivery_Email_Sendgrid/57084/sendEmail.json'

我还想了解上面 URL 中的 57084 是什么

标签: sendgridibm-cloud-infrastructuresendgrid-api-v3

解决方案


57084 数据是电子邮件传递 ID,它是在您的帐户中创建新电子邮件传递时默认生成的。

此 ID 是 SoftLayer_Network_Message_Delivery_Email_SendgridInitParameters,它在请求的Required 标头中发送。

有关更多信息,您可以查看以下文档: https ://softlayer.github.io/reference/services/SoftLayer_Network_Message_Delivery_Email_Sendgrid/sendEmail/

要获取与您的 SL 帐户关联的电子邮件传递 ID,您可以使用以下 curl 示例:

curl -k "https://[username]:[apiKey]@api.softlayer.com/rest/v3/SoftLayer_Account/getNetworkMessageDeliveryAccounts.json" | python -mjson.tool

您将收到如下回复:

[
    {
        "accountId": 111111,
        "createDate": "2015-10-23T10:25:12-06:00",
        "id": 57084,
        "modifyDate": null,
        "password": "sdfsdfsd",
        "typeId": 21,
        "username": "user@yahoo.com",
        "vendorId": 1,
        "emailAddress": "test@yahoo.com",
        "smtpAccess": "1"
    }
]

您收到的错误是因为您的 SendGrid 帐户中没有足够的信用。

要获取您的信用帐户,您可以使用此 curl 示例。信息直接来自 SendGrid 服务器:

curl -k "https://[username]:[apiKey]@api.softlayer.com/rest/v3/SoftLayer_Network_Message_Delivery_Email_Sendgrid/57084/getAccountOverview.json" | python -mjson.tool

如果您想获得有关您的 SendGrid 帐户和信用的更多信息,您可以访问其页面。

要获取您的 SendGrid 帐户的 URL,您可以使用以下 curl 命令:

curl -k "https://[username]:[apiKey]@api.softlayer.com/rest/v3/SoftLayer_Network_Message_Delivery_Email_Sendgrid/57084/getVendorPortalUrl.json" | python -mjson.tool

推荐阅读