Как использовать функцию mail () в Laravel 5.4? - PullRequest
0 голосов
/ 10 октября 2019

Я работаю над существующим проектом Laravel 5.4, размещенным на AWS. Он состоит из кода для отправки электронной почты, используя фасад Mail Laravel и функцию MailMessage для уведомлений по электронной почте. Но в некоторых местах я наблюдаю использование функции mail() из PHP. Эти строки кода, использующие функцию mail(), похоже, нигде не работают, и я не смог понять, почему она не работает, когда нет ошибок, и, очевидно, она должна работать правильно. Тем не менее, письма отправляются с использованием Mail фасад Laravel без каких-либо ошибок.

Я использовал MailTrap для проверки отправки электронной почты, и у меня не возникло проблем с этим. Но для производственного кода я хочу иметь возможность использовать функцию mail(), потому что использование других сервисов в настоящее время не обсуждается. Я посмотрел на Amazon SES и SparkPost, которые в настоящее время кажутся лучшим вариантом, если mail() не работает. MailGun также может иметь значение, поскольку система не будет отправлять более 10 000 электронных писем в месяц, которые включены в бесплатный уровень MailGun. Сам проект размещен на AWS.

Я хочу иметь возможность использовать драйвер mail или sendmail, а не smtp.

Это мой код в настоящее время.

.env

MAIL_DRIVER=mail
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

Значения в mail.php указывают на .env переменных.

Для тестирования Mailtrap я, конечно, использовал smtp сследующая конфигурация:

.env

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=<MAILTRAP_USERNAME>
MAIL_PASSWORD=<MAILTRAP_PASSWORD>
MAIL_ENCRYPTION=null

Предположительно неисправен mail() код:

mail("user@example.com","Exception in Controller->somefunction : " . get_class($e), $e->getMessage() . PHP_EOL . PHP_EOL . $e->getTraceAsString());

mail("user@example.com","Test Subject","Some Content","From: user@mydomain.com" );

Итак, как я могу использовать PHPmail() функция в Laravel 5.4?

Все остальные ответы на многие подобные вопросы включают информацию об изменении на smtp, использовании MailGun / MailTrap / SendGrid и т. Д., Но никто не предлагает объяснения о том, как заставить его работать с драйвером mail, который являетсячто-то, что я специально ищу, по крайней мере, чтобы понять, почему это не сработает, поскольку это не рекомендуется в версии Laravel 5.4.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...