Я использую функцию Laravel Mail для отправки электронной почты. Ниже приведены app/config/mail.php
файла app/config/mail.php
.
'driver' => 'sendmail', 'host' => 'smtp.gmail.com', 'port' => 587, 'from' => array('address' => 'email@gmail.com', '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('EmailId@hotmail.com', 'Sender Name')->subject('Welcome!'); });
Когда я запускаю код, он дает мне следующее сообщение об ошибке:
Swift_TransportException
Ожидаемый код ответа 220, но получил код "", с сообщением ""
Я создал файл SendMail.php
который содержит некоторые данные.
Как разрешить это сообщение об ошибке?
Эта проблема может возникнуть, когда вы не включаете двухэтапную аутентификацию для учетной записи 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
, затем проверьте, электронная почта должна работать.
В моем случае мне пришлось установить
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 не требуется. Просто используйте один метод.