Ошибка при попытке отправить электронную почту с помощью SendGrid в виртуальной машине Ubuntu в Azure
SendGrid Azure У меня есть виртуальная машина с Ubuntu, которую я создал 2 года назад в Azure, в которой я могу без проблем отправить электронное письмо с помощью SendGrind.
Теперь я создаю другую виртуальную машину с Ubuntu, я скопировал тот же код, что у меня на другом сервере, и ничего не работает. Я получаю 500 ошибок. Если я прокомментировал следующую строку, ошибка исчезла, но я не знаю, почему возникла проблема:
$response = $sendgrid->send($email);
Я не помню, нужно ли мне что-то устанавливать на сервере, надеюсь, у вас есть идеи.
require("../sendgrid-php/sendgrid-php.php");
//If not using Composer, uncomment the above line
$email = new \SendGrid\Mail\Mail();
$email->setFrom("xxxxx@gmail.com", "Example User");
$email->setSubject("Sending with SendGrid is Fun");
$email->addTo("xxxxxxx@gmail.com", "Example User");
$email->addContent("text/plain", "and easy to do anywhere, even with PHP");
$email->addContent("text/html", "<strong>and easy to do anywhere, even with PHP</strong>");
$sendgrid = new \SendGrid(getenv('the-key'));
try {
$response = $sendgrid->send($email);
print $response->statusCode(). "\n";
print_r($response->headers());
print $response->body() . "\n";
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
1 ответ
Поскольку первой виртуальной машине, на которую вы ссылаетесь, два года, возможно, вы используете стандартный порт 25 для связи с SendGrid. Начиная с 15 ноября 2017 г. отправка исходящей электронной почты напрямую на внешние домены (например, outlook.com, gmail.com) с виртуальной машины (ВМ) будет доступна только для определенных типов подписки. Исходящие SMTP-подключения с использованием TCP-порта 25 (в основном используются для неаутентифицированной доставки электронной почты) будут заблокированы для большинства новых подписок (подробнее см. Ниже).
Более подробно здесь о вариантах: