Какая правильная конфигурация для отправки писем с помощью Sendmail в Laravel?

Я использую Laravel 7 и хочу отправить электронное письмо с помощью драйвера Sendemail через фасад Laravel Mail. Это работало, когда я использовал почтовую функцию PHP, но вместо этого я хочу использовать фасад Laravel Mail.

Конфигурация электронной почты моего файла .env:

MAIL_DRIVER=sendmail
MAIL_SENDMAIL='/usr/sbin/sendmail -t -i'

Мои настройки почты по умолчанию в config / mail.php:

'default' => env('MAIL_MAILER', 'sendmail'),
'mailers' => [
    'smtp' => [
        'transport' => 'smtp',
        'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
        'port' => env('MAIL_PORT', 587),
        'encryption' => env('MAIL_ENCRYPTION', 'tls'),
        'username' => env('MAIL_USERNAME'),
        'password' => env('MAIL_PASSWORD'),
    ],
    'ses' => [
        'transport' => 'ses',
    ],
    'sendmail' => [
        'transport' => 'sendmail',
        'path' => '/usr/sbin/sendmail -bs',
    ],
    'log' => [
        'transport' => 'log',
        'channel' => env('MAIL_LOG_CHANNEL'),
    ],
    'array' => [
        'transport' => 'array',
    ],
],

Я создал класс Mail, как описано в документации. Какая правильная конфигурация заставит его работать?


person Amir    schedule 06.06.2020    source источник
comment
Может быть, тебе стоит отправить сообщение из config/mail.php раздела sendmail. Потому что это тот драйвер, о котором вы просите.   -  person Dimitri Mostrey    schedule 06.06.2020
comment
Я добавил раздел почтовой программы из config / mail.php   -  person Amir    schedule 06.06.2020
comment
В laravel 7 переменная env изменена на MAIL_MAILER. Вы должны указать драйвер с этим ключом   -  person Adizbek Ergashev    schedule 05.08.2020


Ответы (1)


Сначала измените значение по умолчанию MAIL_MAILER на использование Sendmail.

MAIL_MAILER=sendmail

Затем в config / mail.php обновите строку Sendmail.

'sendmail' => [
    'transport' => 'sendmail',
    'path' => env('MAIL_SENDMAIL', '/usr/sbin/sendmail -bs')
],

Наконец, если вам нужно изменить значение MAIL_SENDMAIL, добавьте эту строку в свой .env.

MAIL_SENDMAIL='/usr/sbin/sendmail -t -i'
person Karl Hill    schedule 06.09.2020