Подтвердить что ты не робот

Ожидаемый код ответа 220, но получил код ", с сообщением" " в Laravel

Я использую функцию Laravel Mail для отправки электронной почты. Ниже приведены настройки файла app/config/mail.php.

'driver' => 'sendmail',
'host' => 'smtp.gmail.com',
'port' => 587,
'from' => array('address' => '[email protected]', 'name' => 'MyName'),
'encryption' => 'tls',
'username' => 'myUsername',
'password' => "password",
'sendmail' => '/usr/sbin/sendmail -bs',
'pretend' => false,

Контрольный метод почты

//Send Mail     
Mail::send('sendMail', array('key' => 'value'), function($message)
{
    $message->to('[email protected]', 'Sender Name')->subject('Welcome!');
});

Когда я запускаю код, он дает мне следующее сообщение об ошибке:

Swift_TransportException

Ожидаемый код ответа 220, но получил код ", с сообщением" "

Я создал файл SendMail.php, который содержит некоторые данные.

Как мне разрешить это сообщение об ошибке?

4b9b3361

Ответ 1

Эта проблема может возникать, когда вы не включаете двухэтапную аутентификацию для учетной записи gmail, которую вы используете для отправки email. Итак, во-первых, включите two step verification, вы можете найти множество ресурсов для включения двухэтапной аутентификации. После его включения вы должны создать app password. И используйте app password в вашем файле .env. Когда вы закончите с этим, ваш файл .env будет выглядеть примерно так.

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=<<your email address>>
MAIL_PASSWORD=<<app password>>
MAIL_ENCRYPTION=tls

и ваш mail.php

<?php

return [
    'driver' => env('MAIL_DRIVER', 'smtp'),
    'host' => env('MAIL_HOST', 'smtp.gmail.com'),
    'port' => env('MAIL_PORT', 587),
    'from' => ['address' => '<<your email>>', 'name' => '<<any name>>'],
    'encryption' => env('MAIL_ENCRYPTION', 'tls'),
    'username' => env('MAIL_USERNAME'),
    'password' => env('MAIL_PASSWORD'),
    'sendmail' => '/usr/sbin/sendmail -bs',
    'pretend' => false,

];

После этого запустите php artisan config:cache и php artisan config:clear, затем проверьте, работает ли электронная почта.

Ответ 2

В моем случае мне пришлось установить

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=<<your email address>>
MAIL_PASSWORD=<<app password>>

MAIL_ENCRYPTION= ssl    <<<<<<<------------------------- (FOCUS THIS)

чтобы работать. Может быть полезно. Остальная часть кода была такой же, как @Sid. разница только в

MAIL_ENCRYPTION= ssl

И я не думаю, что редактирование файла среды и app/config/mail.php не требуется. Просто используйте один метод.