在 Laravel 中使用 Sendmail 发送电子邮件的正确配置是什么?

What's the correct configuration to send emails using Sendmail in Laravel?

我正在使用 Laravel 7,我想通过 Laravel Mail facade 使用 Sendemail 驱动程序发送电子邮件。它在我使用 PHP 邮件功能时有效,但我想改用 Laravel 邮件外观。

我的 .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',
    ],
],

我已经按照文档中的说明创建了邮件 class。使其工作的正确配置是什么?

首先,将默认 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'