我可以通过PHPMailer发送电子邮件,但不能通过 Laravel。我假设我的 Laravel 配置是错误的。我从我的本地开发环境发送。Laravel 错误Failed to authenticate on SMTP server with username "name@example.com" using 2 possible authenticatorsLaravel 控制器// ...Mail::to('anyone@whatever.com')->send(new AnyEmailTemplate());// ...Laravel 配置/mail.phpreturn [ 'driver' => env('MAIL_DRIVER', 'smtp'), 'host' => env('MAIL_HOST', 'mail.anyprovider.com'), 'port' => env('MAIL_PORT', 587), 'from' => [ 'address' => env('MAIL_FROM_ADDRESS', 'name@example.com'), 'name' => env('MAIL_FROM_NAME', 'example.com'), ], 'encryption' => env('MAIL_ENCRYPTION', 'tls'), 'username' => env('MAIL_USERNAME', 'name@example.com'), 'password' => env('MAIL_PASSWORD', 'supersecretpassword'), 'sendmail' => '/usr/sbin/sendmail -bs', 'markdown' => [ 'theme' => 'default', 'paths' => [ resource_path('views/vendor/mail'), ], ],]Laravel .envMAIL_DRIVER=smtpMAIL_HOST=mail.anyprovider.comMAIL_PORT=587MAIL_USERNAME=name@example.comMAIL_PASSWORD=supersecretpasswordMAIL_ENCRYPTION=tlsPHPMailer 脚本(有效)$mail = new PHPMailer(true);$mail->isSMTP();$mail->Host = 'mail.anyprovider.com';$mail->SMTPAuth = true;$mail->Username = 'name@example.com';$mail->Password = 'supersecretpassword';$mail->SMTPAutoTLS = false;$mail->Port = 587;$mail->CharSet = 'UTF-8';$mail->setFrom('name@example.com', 'example.com');$mail->addAddress('anyone@whatever.com');$mail->isHTML(true);$mail->Subject = 'Any subject';$body = "Any content";$altBody = "Any alternative content";$mail->Body = $body;$mail->AltBody = $altBody;$mail->send();知道如何根据使用的设置来配置 LaravelPHPMailer吗?
2 回答
偶然的你
TA贡献1841条经验 获得超3个赞
我有同样的问题。
问题是,我们使用混合字符MAIL_PASSWORD
就像#
是使用在注释.env
文件。
将密码更改为一些没有任何符号的简单密码后,我的问题解决了
繁星淼淼
TA贡献1775条经验 获得超11个赞
根据您的 PHPMailer 脚本,您应该清空 MAIL_ENCRYPTION 的值。
请记住,如果您有一个 .env 文件,它会覆盖您的 config/mail.php 文件。
在您的情况下,您的 .env 文件变为:
MAIL_DRIVER=smtp MAIL_HOST=mail.anyprovider.com
MAIL_PORT=587
MAIL_USERNAME=name@example.com
MAIL_PASSWORD=supersecretpassword
MAIL_ENCRYPTION=
当你的 config/mail.php 变成:
...
'encryption' => env('MAIL_ENCRYPTION', ''),
...
注意
在编辑文件后,您必须通过以下方式告诉 laravel 这些更改:
清理缓存
执行命令 php artisan dump-autoload
- 2 回答
- 0 关注
- 168 浏览
添加回答
举报
0/150
提交
取消