如何配置Laravel mail.php使用内置邮件功能?

时间:2017-04-20 16:55:54

标签: php laravel email

我需要通过mail() PHP函数发送电子邮件。 我在某处读过,我必须将driver中的config/mail.php参数更改为sendmail

默认情况下,它看起来像这样:

'driver' => env('MAIL_DRIVER', 'smtp'),

现在,它看起来像这样:

'driver' => 'sendmail',

还试过这个:

'driver' => 'mail',

但是,mail()功能不起作用。我需要改变什么?

4 个答案:

答案 0 :(得分:28)

与PHP函数一样执行mail(),在大多数情况下,您应该按以下方式配置Laravel:

使用sendmail,at .env:

MAIL_DRIVER=sendmail

不需要主机,用户,密码,端口和加密。

此时,您可以检查它是否已经有效,但有时还需要下一步。

在config / mail.php中设置一个新的.env选项:

'sendmail' => env('MAIL_SENDMAIL', '/usr/sbin/sendmail -bs')

在.env中设置sendmail路径。你可以在phpinfo()上查看sendmail_path,但通常是这一个:

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

答案 1 :(得分:11)

要使用localhost上运行的电子邮件服务器,您的.env文件应如下所示(PHP mail函数不需要用户名或密码)

MAIL_DRIVER=smtp
MAIL_HOST=localhost
MAIL_PORT=25
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=null

然后,更新配置缓存:

php artisan config:cache

答案 2 :(得分:0)

您必须在.env文件中设置邮件配置。在这里,您必须设置所有邮件驱动程序和所有详细信息。请参阅此文档https://laravel.com/docs/5.0/mail

答案 3 :(得分:-10)

您可以设置邮件配置.env文件,如

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=youremail@gmail.com
MAIL_PASSWORD="password"
MAIL_ENCRYPTION=tls

还在config / mail.php中设置配置,如:

'from' => ['address' => 'youremail@gmail.com', 'name' => 'Test'],

然后你可以清除缓存:

php artisan cache:clear
php artisan config:cache
php artisan cache:clear