我使用 Windows 10、Laragon 和 Laravel 框架。
我通过调用
php artisan make:auth
设置默认身份验证
问题是当我尝试使用“忘记密码”组件时,“sendmail”不起作用。 我点击
Send Password Reset Link
后,什么也没发生。并且 Password Reset Link
不会发送到 Laragon 的 Mail Catcher
。
这是里面的配置
.env
MAIL_DRIVER=sendmail
MAIL_SENDMAIL="C:\laragon\bin\sendmail\sendmail.exe -bs"
这是里面的
config/mail.php
'sendmail' => env('MAIL_SENDMAIL', '/usr/sbin/sendmail -bs'),
首先,我使用从 Cpanel 托管电子邮件帐户获得的自定义用户名和密码来设置 Laravel 邮件。它没有通过 sendmail 配置或 smtp 配置进行。
阅读文档我注意到 laravel 确实扩展了 swift mailer 类。我就这样做了我的tick。
$user = User::find(1);
$text = (new WelcomeEmail($user))->render();
// Create the Transport
$transport = (new \Swift_SmtpTransport(env('MAIL_HOST'), 25))
->setUsername(env('MAIL_USERNAME'))
->setPassword(env('MAIL_PASSWORD'))
;
// Create the Mailer using your created Transport RFCValidation
$mailer = new \Swift_Mailer($transport);
// Create a message
$message = (new \Swift_Message('Happy to Have You Onboard'))
->setFrom([env('MAIL_FROM_ADDRESS') => env('MAIL_FROM_NAME')])
->setTo(['[email protected]'])
->setBody($text , 'text/html')
;
$message->setReadReceiptTo(env('MAIL_FROM_ADDRESS'));
// Send the message
$result = $mailer->send($message);
现在
“新欢迎电子邮件”
是一个 Laravel 邮件,它捆绑了邮件的视图。您可以用上面的代码巧妙地创建您自己的邮件类,使您的代码变得小巧且可扩展。
我建议不要编辑 config/mail.php - 使用 .env 文件应该可以完成这项工作。
在文件“config/mail.php”中,您可以找到代码,默认情况下如何构建 sendmail 路径:
'sendmail' => [
'transport' => 'sendmail',
'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -t -i'),
],
可能在不同的 Laravel 版本的情况下,也可能只是拼写错误,因此请尝试将名称 MAIL_SENDMAIL 更改为 MAIL_SENDMAIL_PATH。
但说实话,我也无法让 sendmail 与 Laragon 的可执行文件一起工作。如果有人成功了,请分享您的解决方案。
.env 设置:
MAIL_MAILER=sendmail
MAIL_SENDMAIL_PATH="path/to/laragon/bin/sendmail/sendmail.exe -t -i"
为我使用 Laravel 11 和 Laragon 6.0
注意 -t 和 -i 很重要。