Вызов неопределенной функции SendGrid \ mb_convert_encoding () в /sendgrid-php/lib/helpers/mail/Mail.php в строке 729 - PullRequest
0 голосов
/ 25 апреля 2018

как я могу решить эту проблему?

Вызов неопределенной функции SendGrid \ mb_convert_encoding () в /sendgrid-php/lib/helpers/mail/Mail.php в строке 729

это мой код

<?php

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

$from = new SendGrid\Email(null, "example@example.com");
$subject = "Sending with SendGrid is Fun";
$to = new SendGrid\Email(null, "example@example.com");
$content = new SendGrid\Content("text/plain", "and easy to do anywhere, even with PHP");

// Send message as html
$mail = new SendGrid\Mail($from, $subject, $to, $content);

$apiKey = getenv('my key');
$sg = new \SendGrid($apiKey);

$response = $sg->client->mail()->send()->post($mail);

echo $response->statusCode();

print_r($response->headers());

echo $response->body();

1 Ответ

0 голосов
/ 25 апреля 2018

Краткий ответ:

Вам необходимо установить расширение mbstring для PHP.Если вы используете Ubuntu, команда, вероятно, будет выглядеть примерно так:

sudo apt-get install php7.0-mbstring

Возможно, вам придется настроить пакет в зависимости от вашей версии PHP.Существует множество ресурсов для установки mbstring.


Длинный ответ:

Когда PHP встречает вызов функции внутри пространства имен, он пытается разрешить эту функцию внутри текущего пространства имен.,Как и следовало ожидать, используемая вами библиотека SendGrid не определяет свой собственный mb_convert_string(), поэтому PHP затем попытается проверить глобальную область видимости для функции с именем mb_convert_string().

mb_convert_encoding() является частью расширения mbstring.А поскольку у вас не установлено это расширение, функция не существует.PHP сообщает, что функция не существует в пространстве имен SendGrid, потому что это первое место, которое она проверила.

Понятно, что разработчики SendGrid ожидают, что функция будет в глобальном пространстве имен.Установите расширение, и вам должно быть хорошо идти.

...