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

Ami*_*mir 6 php sendmail laravel laravel-mail laravel-7

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

我的 .env 文件电子邮件配置:

MAIL_DRIVER=sendmail
MAIL_SENDMAIL='/usr/sbin/sendmail -t -i'
Run Code Online (Sandbox Code Playgroud)

我在 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',
    ],
],
Run Code Online (Sandbox Code Playgroud)

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

Kar*_*ill 2

首先,将默认值更改MAIL_MAILER为使用 Sendmail。

MAIL_MAILER=sendmail
Run Code Online (Sandbox Code Playgroud)

然后在 config/mail.php 中,更新 Sendmail 行。

'sendmail' => [
    'transport' => 'sendmail',
    'path' => env('MAIL_SENDMAIL', '/usr/sbin/sendmail -bs')
],
Run Code Online (Sandbox Code Playgroud)

最后,如果您需要更改该MAIL_SENDMAIL值,请将此行添加到您的 .env 中。

MAIL_SENDMAIL='/usr/sbin/sendmail -t -i'
Run Code Online (Sandbox Code Playgroud)