Lararagon 和 Laravel - sendmail 不工作

问题描述 投票:0回答:3

我使用 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'),
php windows laravel sendmail laragon
3个回答
1
投票

首先,我使用从 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 邮件,它捆绑了邮件的视图。您可以用上面的代码巧妙地创建您自己的邮件类,使您的代码变得小巧且可扩展。


0
投票

我建议不要编辑 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 的可执行文件一起工作。如果有人成功了,请分享您的解决方案。


0
投票

.env 设置:

MAIL_MAILER=sendmail
MAIL_SENDMAIL_PATH="path/to/laragon/bin/sendmail/sendmail.exe -t -i"

为我使用 Laravel 11 和 Laragon 6.0

注意 -t 和 -i 很重要。

© www.soinside.com 2019 - 2024. All rights reserved.