Insert user information in the registration confirmation email message

Asked

Viewed 27 times

-1

I want to know how I do to insert user information in the email registration confirmation message. It would be to put the name, email and even an image with the company logo.

model: User.php

 <?php

   namespace App\Models;

   use Illuminate\Contracts\Auth\MustVerifyEmail;
   use Illuminate\Database\Eloquent\Factories\HasFactory;
   use Illuminate\Foundation\Auth\User as Authenticatable;
   use Illuminate\Notifications\Notifiable;

  class User extends Authenticatable implements MustVerifyEmail
  {
   use HasFactory, Notifiable;

/**
 * The attributes that are mass assignable.
 *
 * @var array
 */
protected $fillable = [
    'name',
    'email',
    'password',
];

/**
 * The attributes that should be hidden for arrays.
 *
 * @var array
 */
protected $hidden = [
    'password',
    'remember_token',
];

/**
 * The attributes that should be cast to native types.
 *
 * @var array
 */
protected $casts = [
    'email_verified_at' => 'datetime',
];
   }

Verifyemail.php see the buildMailMessage function.

 <?php

  namespace Illuminate\Auth\Notifications;

  use Illuminate\Notifications\Messages\MailMessage;
  use Illuminate\Notifications\Notification;
  use Illuminate\Support\Carbon;
  use Illuminate\Support\Facades\Config;
  use Illuminate\Support\Facades\Lang;
  use Illuminate\Support\Facades\URL;

 class VerifyEmail extends Notification 
{
/**
 * The callback that should be used to create the verify email URL.
 *
 * @var \Closure|null
 */
public static $createUrlCallback;

/**
 * The callback that should be used to build the mail message.
 *
 * @var \Closure|null
 */
public static $toMailCallback;

/**
 * Get the notification's channels.
 *
 * @param  mixed  $notifiable
 * @return array|string
 */
public function via($notifiable)
{
    return ['mail'];
}

/**
 * Build the mail representation of the notification.
 *
 * @param  mixed  $notifiable
 * @return \Illuminate\Notifications\Messages\MailMessage
 */
public function toMail($notifiable)
{
    $verificationUrl = $this->verificationUrl($notifiable);

    if (static::$toMailCallback) {
        return call_user_func(static::$toMailCallback, $notifiable, $verificationUrl);
    }

    return $this->buildMailMessage($verificationUrl);
}

/**
 * Get the verify email notification mail message for the given URL.
 *
 * @param  string  $url
 * @return \Illuminate\Notifications\Messages\MailMessage
 */
protected function buildMailMessage($url)
{
    return (new MailMessage)
        ->subject(Lang::get('Verify Email Address'))
        ->line(Lang::get('Please click the button below to verify your email address.'))
        ->action(Lang::get('Verify Email Address'), $url)
        ->line(Lang::get('If you did not create an account, no further action is required.'));
}

/**
 * Get the verification URL for the given notifiable.
 *
 * @param  mixed  $notifiable
 * @return string
 */
protected function verificationUrl($notifiable)
{
    if (static::$createUrlCallback) {
        return call_user_func(static::$createUrlCallback, $notifiable);
    }

    return URL::temporarySignedRoute(
        'verification.verify',
        Carbon::now()->addMinutes(Config::get('auth.verification.expire', 60)),
        [
            'id' => $notifiable->getKey(),
            'hash' => sha1($notifiable->getEmailForVerification()),
        ]
    );
}

/**
 * Set a callback that should be used when creating the email verification URL.
 *
 * @param  \Closure  $callback
 * @return void
 */
public static function createUrlUsing($callback)
{
    static::$createUrlCallback = $callback;
}

/**
 * Set a callback that should be used when building the notification mail message.
 *
 * @param  \Closure  $callback
 * @return void
 */
public static function toMailUsing($callback)
{
    static::$toMailCallback = $callback;
}
  }
  • 1

    Create a view template lara o email and pass the data to this view. Take a look at doc. https://laravel.com/docs/8.x/mail#Configuring-the-view

1 answer

-1

Browser other questions tagged

You are not signed in. Login or sign up in order to post.