当前位置: 首页 > 知识库问答 >
问题:

Laravel自定义密码电子邮件

云联
2023-03-14

我使用laravel 5.6,并成功地将视图作为电子邮件发送。

我使用以下代码:

Mail::to($user->email)->send(new Welcome($user));

我唯一的问题是密码重置。我知道我可以自定义一点模板,但是如何覆盖默认的电子邮件模板并发送我自己的视图?

我尝试写我自己的ResetPassword通知:

<?php

namespace App\Notifications;

use Illuminate\Auth\Notifications\ResetPassword;
use Illuminate\Notifications\Messages\MailMessage;

class ResetPasswordNotification extends ResetPassword
{
/**
 * Build the mail representation of the notification.
 *
 * @param  mixed  $notifiable
 * @return \Illuminate\Notifications\Messages\MailMessage
 */
public function toMail($notifiable)
{
    if (static::$toMailCallback) {
        return call_user_func(static::$toMailCallback, $notifiable, $this->token);
    }

    return (new MailMessage)
        ->line('Vous recevez cet email car une demande de modification du mot de passe pour votre compte a été initialisée.')
        ->action('Réinitialiser le mot de passe', url(config('app.url').route('password.reset', $this->token, false)))
        ->line('Si vous n\'êtes pas à l\'origine de cette demande, merci de contacter l\'équipe du site.');
}
}

但我只能翻译电子邮件。我想要的是根据我自己的模板发送我自己的视图。

可能吗?

谢谢你的帮助。

共有1个答案

时仰岳
2023-03-14

您可以使用MailMessage定义自己的视图

示例:

return (new MailMessage)->view(
    'your.email.blade', [
        'data' => $data
    ]
);

看见https://laravel.com/docs/5.6/notifications#mail-更多信息的通知。

编辑:

由于您正在使用密码重置通知,您需要首先找到用户。我相信toMail中的$通知的对象应该是CanResetPassword特性的实例,所以您必须使用电子邮件查找用户:

public function toMail($notifiable) {
{
    $email = $notifiable->getEmailForPasswordReset();
    $user = User::where('email', '=', $email)->first();

    return (new MailMessage)->view(
        'your.email.blade', [
            'user' => $user,
        ]
    );
}
 类似资料:
  • 我正在尝试在Laravel中自定义密码重置电子邮件。 我必须重写此函数: 这是我的尝试: 我得到这个错误: Illumb\Foundation\Auth\User::sendPasswordResetNotification($token,Illumb\Http\Request$Request)的声明必须与Illumb\Contracts\Auth\CanResetPassword::sendPa

  • 我有一个插件管理我的货件与两个自定义状态:等待-装运和装运。 我尝试添加一个电子邮件发送时,订单传递到发货。 我在Stack Overflow:Woocommerce退款电子邮件中发现了这一点,但我可以知道它是如何工作的 下面是我的插件文件代码: 我用下面的helgatheviking和Adrien Leber的建议更新了我的代码 和我的班级: 当我改变我的订单状态时,什么也没有发生!我的触发函数

  • 我试图发送电子邮件使用Nodejs包Nodemailer,但我无法更改从电子邮件到我的自定义域电子邮件。任何帮助都将不胜感激。这是我用来发送电子邮件的代码。

  • 我正在研究AWS Cognito,下面是关于消息定制的两个问题。 1) 我正在使用“链接”验证类型为“电子邮件验证消息”编写AWS Cognito。我遇到了一个问题,“电子邮件消息”使其动态。 2)如何根据用户组或有条件地发送不同的“电子邮件消息”内容? 请建议。 谢啦

  • 问题内容: 因此,我已经发现了一些问题,这些问题表明您必须重写getAuthPassword()才能从数据库提供密码列的自定义名称。试图将此方法与数据库中的列同名,但没有起作用。它仍然会发生以下错误:未定义的索引:密码。 这是身份验证: 试图在表格和控制器中都将user_password更改为密码,但无效。 所以问题是,如果我在数据库中有一个名为“ user_password”的列,是否可以使Au