Я работаю над существующим проектом 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.