Laravel: How to Customize Verification Email Text

Laravel has a function for user email verification after registration which you can enable pretty easily. But how to customize the email being sent? I will show you two ways.


Option 1: toMailUsing()

The official Laravel documentation suggests adding this code to the AppServiceProvider:

use Illuminate\Auth\Notifications\VerifyEmail;
use Illuminate\Notifications\Messages\MailMessage;
 
public function boot(): void
{
// ...
 
VerifyEmail::toMailUsing(function (object $notifiable, string $url) {
return (new MailMessage)
->subject('Verify Email Address')
->line('Click the button below to verify your email address.')
->action('Verify Email Address', $url);
});
}

This works well if you just want to make small tweaks. But what if you want to build your own custom Notification class for this?


Option 2: Create Custom Notification Class

You can also create your own notification:

php artisan make:notification VerifyEmail

Then, in your Notification class, you extend the core class from the framework, and override the method buildMailMessage():

app/Notifications/VerifyEmail.php

use Illuminate\Auth\Notifications\VerifyEmail as Notification;
use Illuminate\Notifications\Messages\MailMessage;
 
class VerifyEmail extends Notification
{
protected function buildMailMessage($url): MailMessage
{
return (new MailMessage())
->subject(trans('auth.mail.verify.subject'))
->line(trans('auth.mail.verify.line1', [
'count' => config('auth.verification.expire', 60),
]))
->action(trans('auth.mail.verify.action'), $url)
->line(trans('auth.mail.verify.line2'));
}
}

Finally, in the User Model you need to override the function sendEmailVerificationNotification() and pass your custom Notification class, instead.

app/Models/User.php:

use Azuriom\Notifications\VerifyEmail as VerifyEmailNotification;
 
class User extends Authenticatable implements MustVerifyEmail
{
// ...
 
public function sendEmailVerificationNotification(): void
{
$this->notify(new VerifyEmailNotification());
}
}

No comments or questions yet...

Like our articles?

Become a Premium Member for $129/year or $29/month
What else you will get:
  • 83 courses
  • 96 long-form tutorials
  • access to project repositories
  • access to private Discord

Recent New Courses