2

我有一个 laravel 5 应用程序,需要通过服务 sendinblue 发送重置密码链接。如何更改核心功能以在 PasswordBroker.php 中使用 sendinblue?

public function emailResetLink(
    CanResetPasswordContract $user,
    $token,
    Closure $callback = null
) {
    $mailin = new Mailin(
        'https://api.sendinblue.com/v2.0',
        '0TYSSJBSKERNDKW'
    );

    $view = $this->emailView;

    return $this->mailer->send(
        $view, 
        compact('token', 'user'),
        function($m) use ($user, $token, $callback) 
        {
            $m->to($user->getEmailForPasswordReset());

            if ( ! is_null($callback))
            {
                call_user_func($callback, $m, $user, $token);
            }
        });
}
4

1 回答 1

2

您是否尝试将 Sendinblue 添加为邮件驱动程序?这个 github repo 可以提供帮助(https://github.com/agence-webup/laravel-sendinblue

在这里,您的所有电子邮件都将由 Sendinblue 发送,您将在 Laravel 中作为普通邮件发送 ( https://laravel.com/docs/5.1/mail )

如果只是为了这个,你可以只为这种邮件更改驱动程序,我认为你可以像这样在运行时更改驱动程序

Config::set('mail.driver', 'driver_name');
(new Illuminate\Mail\MailServiceProvider(app()))->register();  

此外,您可以尝试收听在发送邮件消息之前触发的“mailer.sending”事件,但这不是一个好方法。

于 2016-05-30T16:12:03.723 回答