Let's Explore Laravel Notifications on TheDevNerd

0

How to Use Laravel Notification to Send Notification Mail


If you want to send any kind of Notification Mail Using Laravel Notification then this article is for you . In this article we will learn how can your Laravel Notification to send Mail with proper example .

Laravel makes it very easy to send a notification mail on completion of a perticular task or you can use according to your requirement . You just need to follow the step i have given and i'm again telling it's very easy but you just need to follow the steps carefully. So let's see how Laravel Notification works .


Steps we will go Through :


  • Setting Up Mail Configuration
  • Using Laravel Notification
  • Setting up Controller
  • Testing whether working or not

Step 1 : Setting up Mail Configuration :

The very first step is to set up your mail configuration in your " .env " file . For this example i will be using Mailtrap.io For sending Mails . Make sure your " .env " mail configuration is same your Mailtrap configuration as shown in the following .

Project_name\.env.php :


MAIL_MAILER=smtp

MAIL_HOST=smtp.mailtrap.io

MAIL_PORT=2525

MAIL_USERNAME=34d7af640c9818

MAIL_PASSWORD=d07708a6993e38

MAIL_ENCRYPTION=tls

MAIL_FROM_ADDRESS=0e3aa00606-f48da0@inbox.mailtrap.io

MAIL_FROM_NAME="${APP_NAME}"


Mailtrap.io



Step 1 : Using Laravel Notification :

Download Notification File :

First thing we need to create a notification class to use Laravel Notification . Use the following command to create a Laravel Notification file .


php artisan make:notification FileName

php artisan make:notification TestNotification

After using this command it will create your file ( TestNotification.php ) at " app\Notifications\TestNotification.php "

Project_name\app\Notifications\TestNotification.php :


<?php

namespace App\Notifications;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;

class TestNotification extends Notification
{
    use Queueable;

    /**
     * Create a new notification instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

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

    /**
     * Get the mail representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return \Illuminate\Notifications\Messages\MailMessage
     */
    public function toMail($notifiable)
    {
        return (new MailMessage)
                    ->line('The introduction to the notification.')
                    ->action('Notification Action', url('/'))
                    ->line('Thank you for using our application!');
    }

    /**
     * Get the array representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function toArray($notifiable)
    {
        return [
            //
        ];
    }
}


Step 3 : Setting up Controller :

Now open your controller where you want to call the Notification . For example , in a review management system , you want send a mail to the user whenever the admin reply to a user's review. On your controller use the following code to call the notification to send email


User::find(1)->notify(new TestNotification);

To use the above code you need to call your  notification class as shown below


use App\Notifications\TestNotification;

Example :

responseController.php :


public function response(Request $req,$id)
    {
     $this->validate($req,[
                'response' => 'required|min:2|max:500',
            ],[
                'response.required' => ' Enter any response to comment ',
            ]);
     $review_detail=Review::find($id);
     $rid=$review_detail->id;
     $uid=$review_detail->uid;
     $cid=$review_detail->cid;
     
     $data=new Response;
  $data->rid=$rid;
  $data->uid=$uid;
  $data->cid=$cid;
  $data->reply=$req->response;
  $data->replyuid=Auth::user()->id;
  $data->save();
  
  User::find($uid)->notify(new TestNotification);

  return redirect(url('/adminreviewdetail',$rid));
    }

That's it  now whenever the function of your controller will be called it will send a mail to your mailtrap .

Output :


You can the message detail in your  " project_name\app\Notifications\FileName.php "


public function toMail($notifiable)
    {
        return (new MailMessage)
                    ->line('Hello User')
                    ->line('The Business admin has replied to your review');
    }

This is all about how can you use Laravel Notification to send Mail . Hope it Helped You .

Thank your for reading this article 😊

For any query do not hesitate to comment  💬

Also Read :

Conversion of Array to String in Laravel

Types of Migration in Laravel

How to use multiple where condition in Laravel

how to Use Laravel 7 Auth

How to make Covid-19 Tracker

How to integrate Vue JS in Laravel


Post a Comment

0Comments
Post a Comment (0)