首页 > 解决方案 > SendGrid 响应状态码 0 没有更多信息

问题描述

我正在尝试使用SendGrid PHP API 库发送邮件。当我昨天尝试它时它起作用了,但今天的响应只有零信息:

SendGrid\Response Object
(
    [statusCode:protected] => 0
    [body:protected] => 
    [headers:protected] => Array
        (
            [0] => 
        )
)

\SendGrid\SendGrid()->send()方法中使用了以下对象:

SendGrid\Mail\Mail Object
(
    [from:SendGrid\Mail\Mail:private] => SendGrid\Mail\From Object
        (
            [name:SendGrid\Mail\EmailAddress:private] => test1
            [email:SendGrid\Mail\EmailAddress:private] => test@example.com
            [substitutions:SendGrid\Mail\EmailAddress:private] => 
            [subject:SendGrid\Mail\EmailAddress:private] => 
        )

    [subject:SendGrid\Mail\Mail:private] => SendGrid\Mail\Subject Object
        (
            [subject:SendGrid\Mail\Subject:private] => this is a test
        )

    [contents:SendGrid\Mail\Mail:private] => Array
        (
            [0] => SendGrid\Mail\Content Object
                (
                    [type:SendGrid\Mail\Content:private] => text/html
                    [value:SendGrid\Mail\Content:private] =>
<h1>sending mails</h1>
                )

        )

    [attachments:SendGrid\Mail\Mail:private] => 
    [reply_to:SendGrid\Mail\Mail:private] => 
    [personalization:SendGrid\Mail\Mail:private] => Array
        (
            [0] => SendGrid\Mail\Personalization Object
                (
                    [tos:SendGrid\Mail\Personalization:private] => Array
                        (
                            [0] => SendGrid\Mail\To Object
                                (
                                    [name:SendGrid\Mail\EmailAddress:private] => mr test
                                    [email:SendGrid\Mail\EmailAddress:private] => testtest@example.com
                                    [substitutions:SendGrid\Mail\EmailAddress:private] => 
                                    [subject:SendGrid\Mail\EmailAddress:private] => 
                                )

                        )

                    [ccs:SendGrid\Mail\Personalization:private] => Array
                        (
                            [0] => SendGrid\Mail\Cc Object
                                (
                                    [name:SendGrid\Mail\EmailAddress:private] => 
                                    [email:SendGrid\Mail\EmailAddress:private] => testtest1@example.com
                                    [substitutions:SendGrid\Mail\EmailAddress:private] => 
                                    [subject:SendGrid\Mail\EmailAddress:private] => 
                                )

                        )

                    [bccs:SendGrid\Mail\Personalization:private] => 
                    [subject:SendGrid\Mail\Personalization:private] => 
                )
        )
)

显然我在tosccs部分使用了正确的地址。发送的对象有问题吗?

标签: sendgridphp-7.2sendgrid-api-v3

解决方案


除了代码之外,如果在发送邮件时有任何其他问题,send-grid 库会保持沉默,不会抛出任何异常,只返回响应 0。我建议您 访问此链接

  1. 在 php-http-client\lib 中创建一个文件夹 Exception。
  2. lib/Exception/InvalidRequest.php复制到文件夹中。
  3. 修改lib/Client.php

这些修改将引发适当的异常,这将帮助您找到您的案例中可能存在的问题并能够进一步解决问题。


推荐阅读