我需要通过mail()
PHP函数发送电子邮件。
我在某处读过,我必须将driver
中的config/mail.php
参数更改为sendmail
。
默认情况下,它看起来像这样:
'driver' => env('MAIL_DRIVER', 'smtp'),
现在,它看起来像这样:
'driver' => 'sendmail',
还试过这个:
'driver' => 'mail',
但是,mail()
功能不起作用。我需要改变什么?
答案 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