从SendsPasswordResetEmails特征上的地址覆盖Laravel

时间:2019-05-04 01:48:12

标签: php laravel email

如何覆盖地址字段中忘记密码的电子邮件?

我正在使用SendsPasswordResetEmails trait

它似乎正在使用.env mail-from configuration

这是特征供应商代码SendsPasswordResetEmail Trait

sendResetLinkEmail method似乎是神奇的地方,但我无法确定如何覆盖从代理发送的邮件,此功能在哪里? sendResetLink

4 个答案:

答案 0 :(得分:0)

您可以只复制特征的代码,然后将其粘贴在PasswordBroker类中以覆盖它,如果您要的是该特征。

答案 1 :(得分:0)

我认为您不必编辑broker(),只需覆盖sendResetLinkEmail()中的ForgetPasswordController。然后覆盖$request->mail条目。

无论如何,您要查找的功能位于“ \ vendor \ laravel \ framework \ src \ Illuminate \ Auth \ Passwords \ PasswordBroker.php” => sendResetLink()

答案 2 :(得分:0)

我认为您要设置的是

MAIL_FROM_ADDRESS=sender@example.com
MAIL_FROM_NAME=Sender

在.env文件中,它应该可以正常工作,您不需要覆盖sendResetLinkEmail method

答案 3 :(得分:0)

我可以想到两种方法来实现您想要的。

1)在AppServiceProvider中:

/**
 * Bootstrap any application services.
 *
 * @return void
 */
public function boot()
{
    config()->set('mail.from.address', 'YOUR FROM ADDRESS HERE');
}

2)在Controller.php中:

class Controller extends BaseController
{
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;

    public function __construct()
    {
      config()->set('mail.from.address', 'YOUR FROM ADDRESS HERE');
    }
}

希望有帮助!