Sendgrid在Email->getHeadersJson()中失败。

4

我目前在生产环境中遇到了一个让我抓狂的情况。我使用的是PHP 7.1Laravel 5.5.26Sendgrid 4.0.4

失败的代码片段如下:

 $this->email
            ->setFrom($from) // sender email
            ->setSubject(' ')
            ->setSmtpapiTos($recipients)
            ->setSubstitutions($params)
            ->setSections($sections)
            ->addCategory($category)
            ->addBcc($bcc)
            ->setText(' ')
            ->setHtml(' ')
            ->setFromName($name) // sender name
            ->setTemplateId($tempId); // id template email

 // send email
 $this->sendgrid->send($this->email);

我收到的当前错误如下:
count(): 参数必须是数组或实现Countable接口的对象
它来自于以下代码:
在 Email.php (第569行),count(null)
Email.php (第611行) 中的 Email->getHeadersJson()
SendGrid.php (第109行) 中的 Email->toWebFormat()
EmailController.php (第100行) 中的 SendGrid->send(object(Email))
我需要帮助,谢谢。
更新:
我添加了 ->addHeader('key', 'value')(虚拟键值对),这样头部就不会为空并且可以正常工作。
1个回答

3

可能的解决方案

我刚刚添加了 addHeader(key, value),并使用一个虚拟的键值对来向电子邮件中添加头信息,以避免头部为空。

我仍然不明白为什么我使用的是PHP 7.1而不是PHP 7.2时会发生这种情况。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接