Sendgrid在本地工作,但在生产时没有(内部服务器错误)

时间:2017-03-20 23:54:16

标签: php sendgrid email-integration

我有奇怪的问题,本地在我的Windows机器上一切正常,但当我部署我的应用程序在托管由于某种原因我在这个功能中得到内部服务器错误,我没有看到任何细节或任何消息有什么不对,所以我有点困惑我应该如何处理这个以及如何调试这个,任何人都有类似的问题?

<?php
date_default_timezone_set('Etc/UTC');

require_once("sendgrid-php/sendgrid-php.php");

function sendRegistrationEmail($object) {
    $message = file_get_contents('email/templates/RegistrationTemplate.html');

    $message = str_replace('%firstName%', $object['firstName'], $message);
    $message = str_replace('%lastName%', $object['lastName'], $message);
    $message = str_replace('%email%', $object['email'], $message);
    $message = str_replace('%password%', $object['passwordHash'], $message);
    //var_dump works here, but
    $from = new SendGrid\Email(null, "jane.doe@gmail.com");
    //on this line it does not enter.
    $subject = "Leben IN WÜRDE Account Created";
    $to = new SendGrid\Email(null, 'jon.doe@gmail.com');
    $content = new SendGrid\Content("text/html", $message);
    $mail = new SendGrid\Mail($from, $subject, $to, $content);

    $apiKey = 'myKey';
    $sg = new \SendGrid($apiKey);

    $response = $sg->client->mail()->send()->post($mail);
    echo $response->statusCode();
}
?>

1 个答案:

答案 0 :(得分:0)

检查服务器上的PHP版本(php -v)。据我所知,在PHP 5.3中添加了命名空间功能。由于脚本在第一次使用名称空间功能($ from = new SendGrid \ Email)的行中断,这就是我的想法。