Kirim Welcome Email Notification Setelah User Register di Laravel 8

Kirim Welcome Email Notification Setelah User Register di Laravel 8

Admin
Admin・ 20 Oktober 2021
7 min read ・ 2176 views

Laravel Welcome Email Notification - Di artikel sebelumnya, saya sudah pernah membagikan artikel yang membahas cara mengirimkan notifikasi ke user yang baru register di laravel 8 menggunakan layanan whatsapp API dari Twilio. Dan di artikel ini, saya akan share tentang cara mengirimkan welcome notification ke setiap ada user yang baru menyelesaikan registrasi di laravel 8, dan kali ini saya akan mengirimkan notifikasi tersebut via email (Gmail).

Baca: Tutorial Cara Kirim Notifikasi Whatsapp dengan Laravel 8 dan Twilio

Fitur welcome email notification berfungsi agar kita terasa lebih dekat dengan user dan terkesan lebih ramah dengan user di sistem atau aplikasi kita. Welcome email notification, umumnya dapat kita jumpai di platform-platform besar yang terdapat fitur user authentication seperti ecommerce, social media, dan lain-lain.

Baiklah, mari kita langsung saja ke koding untuk mencoba membuat welcome email notification di laravel 8. 👇 👨‍💻

Step 1: Install Laravel

//via Laravel Installer
composer global require laravel/installer
laravel new laravel-welcome-email-notification

//via Composer
composer create-project laravel/laravel laravel-welcome-email-notification

Pada langkah yang pertama ini, kita perlu menginstall laravel versi terbaru (saat ini versi 8) yang akan kita coba untuk implementasi mengirimkan welcome email notification setelah user malakukan register di laravel 8. Untuk installasi laravel bisa menggunakan laravel installer atau menggunakan composer seperti contoh di atas.

Silahkan memilih salah satu cara yang ingin digunakan untuk installasi laravel. Dari kedua contoh perintah installasi laravel di atas, akan sama-sama menghasilkan atau generate laravel project dengan nama laravel-welcome-email-notification.

Step 2: Setup Database

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_welcome_email_notification
DB_USERNAME=root
DB_PASSWORD=

Selanjutnya, buat database baru untuk menyimpan data-data sample yang akan kita gunakan pada percobaan ini. Jika kamu menggunakan xampp sebagai local development, silahkan buat database baru di localhost/phpmyadmin. Disini saya beri contoh, saya membuat database baru dengan nama laravel_welcome_email_notification. Kemudian jangan lupa juga untuk menyesuaikan DB_DATABASE pada file .env seperti pada contoh di atas.

Step 3: Setup Sender

MAIL_MAILER=smtp
MAIL_HOST=smtp.googlemail.com
MAIL_PORT=587
MAIL_USERNAME=mail@gmail.com
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=mail@gmail.com
MAIL_FROM_NAME="Codelapan"

Kemudian di step ketiga yaitu melakukan setup email sender. Karena pada percobaan ini, kita akan mengirimkan email dengan gmail di laravel 8, jadi pada file .env juga perlu disesuaikan seperti contoh di atas. Sebelum menggunakan gmail sebagai email sender di laravel, pastikan "Akses aplikasi yang kurang" di settingan google kamu sudah dalam kondisi Aktif.

Baca: Cara Kirim Email Dengan Gmail Di Laravel

Step 4: Install Laravel UI

composer require laravel/ui
php artisan ui bootstrap --auth
npm install && npm run dev

Kita perlu fitur authentication (register, login dan logout) untuk implementasi mengirimkan welcome email notification ke user setelah melakukan register. Untuk itu, disini saya contohkan menggunakan laravel ui package untuk membuat fitur authentication tersebut.

Silahkan install laravel ui package di laravel project kita dengan menjalankan perintah-perintah seperti di atas secara berurutan.

*Sebelum menginstall laravel ui package tersebut, pastikan kamu sudah masuk ke direktori project dengan menjalankan perintah cd laravel-welcome-email-notification pada terminal. 

Step 5: Generate Notification

php artisan make:notification WelcomeEmailNotification

Kemudian, generate notification class menggunakan perintah artisan seperti di atas. Setelah menjalankan perintah tersebut, kita sekarang sudah mempunyai file WelcomeEmailNotification.php yang terletak di direktori app/Notifications.

Step 6: Setup RegisterController

protected function create(array $data)
{
    $user = User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
    ]);

    $user->notify(new WelcomeEmailNotification());
        
    return $user;
}

Selanjutnya, buka file di app/Http/Controllers/Auth/RegisterController.php. Pada function create, ubah atau tambahkan kode seperti di atas. Dengan kode tersebut, setelah user melakukan register, maka akan mengirimkan email dari class WelcomeEmailNotification ke email user tersebut.

Step 7: Testing 1

Laravel welcome email notification 1

Oke, sekarang mari kita lakukan testing yang pertama. Silahkan jalankan laravel project kalian menggunakan perintah php artisan serve, lalu cobalah melakukan register dengan email aktif. Setelah berhasil melakukan register, maka akan ada email masuk ke email kamu seperti gambar di atas.

Step 8: Custom Pesan Email

Bagaimana cara mengubah text pesan email notifikasi dan menampilkan nama user ? Caranya cukup mudah, silahkan simak penjelasan di bawah ini. 👇

RegisterController.php

protected function create(array $data)
{
    $user = User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
    ]);

    $user->notify(new WelcomeEmailNotification($user));
        
    return $user;
}

Pertama, buka file RegisterController.php dan tambahkan variable $user didalam WelcomeEmailNotification untuk kita parsing datanya ke email.

WelcomeEmailNotification.php

use App\Models\User;
....
....
....
public function __construct(User $user)
{
    $this->user = $user;
}
.....
.....
.....
public function toMail($notifiable)
{
    return (new MailMessage)
                ->greeting('Hello, '.$this->user->name)
                ->line('Welcome to Codelapan.')
                ->action('Explore', url('/'))
                ->line('Thank you for using our application!');
}

Kemudian buka file WelcomeEmailNotification.php, kemudian ubah kodenya menjadi seperti di atas. Dengan kode tersebut, kita menambahkan variable user yang diparsing dari file RegisterController.php untuk dapat menampilkan data user yang telah diinputkan saat register. Kemudian, kita juga mengubah text pada line pertama dan text untuk button.

Step 9: Testing 2

Laravel welcome email notification

Oke, sekarang kita coba lagi register user baru dan tentunya juga menggunakan email aktif agar dapat menerima dan melihat hasil email notificationnya. Setelah berhasil register, maka akan ada email notification masuk lagi seperti gambar di atas.

php artisan vendor:publish --tag=laravel-notifications

Tidak suka dengan format atau tampilannya ? Kita bisa custom template email notification tersebut dengan mempublish notification package resource menggunakan perintah di atas. Setelah menjalankan perintah seperti di atas, template email notification terletak di direktori resources/views/vendor/notifications.

Step 10: Menambahkan Attachment

public function toMail($notifiable)
{
    return (new MailMessage)
                ->greeting('Hello, '.$this->user->name)
                ->line('Welcome to Codelapan.')
                ->action('Explore', url('/'))
                ->line('Thank you for using our application!')
                ->attach('promotion.PNG');
}

Dalam beberapa kasus, mungkin kita juga perlu menambahkan file attachment di welcome email notification, seperti menambahkan file pdh bukti pendaftaran, banner promosi dan lain-lain. Nah, untuk menambahkan attachment di email notification, kita bisa menggunakan atau menambahkan method attach. Contoh cara penggunaannya, bisa dilihat seperti contoh kode di atas. 

Baiklah, cukup sekian artikel kali ini, yang telah membahas sedikit tentang cara membuat atau mengirimkan welcome email notification ke user yang telah berhasil register di aplikasi laravel 8. Selamat mencoba dan sampai jumpa di artikel berikutnya. 👋 🚀

Tinggalkan Komentar
Loading Comments