Sending Simple Mail Laravel - Dunia Laravel


Ada banyak jenis macam notifikasi. Ada yang berada dalam website dan ada yang berupa email. Untuk notifikasi email sendiri bisa digunakan untuk beberapa hal lainnya. Seperti notifikasi untuk reset password, notifikasi promosi, atau mungkin notifikasi untuk konfirmasi. Salah satu cara buat ngirim email itu bisa lewat SMTP (Simple Mail Transfer Protocol).

 

Table of Contents

  • Things That Need to be Prepared
  • Setting Security GMAIL
  • Setting .env and mail.php
  • Make View of Mail
  • Setting Controller
  • Setting Web Route
  • Testing

 

Things That Need to be Prepared

Ada 2 hal yang perlu kalian punya sebelum mulai. Pertama email, Kedua adalah project laravel yang akan kalian gunakan. Pada project laravel, kalian perlu membuat pengaturan pada .env dan config/mail.php serta mendeklarasi alamat pada web.php. Perintah mengirim emailnya akan berada di dalam controller yang nanti akan kita buat.

Karena kita akan pake email asli, kita juga perlu melakukan beberapa pengaturan di akun gmail kita. Oiya, di sini kita akan menggunakan SMTP Gmail.

 

Setting Security GMAIL

Masuk ke pengaturan akun google yang bisa kalian buka dengan cara klik profil kalian kemudian pilih “manage your google account”.


Kemudian kalian pilih tab ‘kemanan’ atau ‘security’ kemudian aktifkan ‘akses aplikasi kurang aman’.



Setting .env and mail.php

Pada file .env, kalian akan melihat daftar variable yang berkaitan dengan mailing.



Ubah isi dari file .env yang asli menjadi seperti pada gambar diatas untuk menggunakan SMTP google.

Kemudian kalian buka config/mail.php dan lakukan sedikit pengaturan pada MAIL_HOST dan MAIL_PORT seperti dibawah.

'host' => env('MAIL_HOST', 'smtp.googlemail.com'),

'port' => env('MAIL_PORT', 465),

 

Make View of Mail

View ini akan digunakan sebagai bentuk isi email yang akan dikirimkan. Karena kita akan fokus ke bagian mengirim emailnya, view ini akan kita buat sesimple mungkin. View yang aku buat itu seperti dibawah.

Hello <strong>{{ $name }}</strong>,

<p>{{$body}}</p>

View itu aku simpen di folder email. Jadi path buat buka view ini adalah emails/mail atau emails.mail.

 

Setting Controller

Buatlah controller untuk menampung fungsi yang akan digunakan untuk mengirim email.

php artisan make:controller TestMailController

Selanjutnya kita akan buat fungsinya. Karena disini kita akan menggunakan helper ‘Mail’ maka kita perlu deklarasi dibagian awal controller.

use Illuminate\Support\Facades\Mail;

Kemudian untuk fungsi mengirim emailnya adalah seperti berikut.

public function sendMail(){

    $to_name = 'NAMA ORANG TUJUAN';

    $to_email = 'NAMA_EMAIL@email.com';

    $data = array('name'=>"NAMA ORANG TUJUAN", 'body' => 'ISI EMAIL');

    Mail::send('emails.mail', $data, function($message) use ($to_name, $to_email) {

        $message->to($to_email, $to_name)

        ->subject('Laravel Test Mail');

        $message->from('EMAIL_PENGIRIM@email.com','NAMA PENGIRIM');

    });

}

Variable $to_name dan $to_email diisi dengan identitas akun tujuan. Lalu ada variable array $data yang digunakan untuk menyimpan data yang akan di tampilkan dalam email. Helper ‘Mail’ digunakan untuk mengirim email dengan template view yang sebelumnya udah kita buat yang berada di emails.mail. Kemudian kita deklarasi subject dari emailnya dan identitas pengirimnya.

 

Setting Web Route

Sentuhan terakhir kita perlu membuat jalan yang digunakan untuk mengakses controllernya. Kita bisa pake route yang simple aja.

Route::get('/sendMail', 'TestMailController@sendMail');

Dengan route itu, kita akan bisa mengakses controller untuk mengirim email.

 

Testing

Selanjutnya kalian bisa buka route yang kalian buka setelah menjalankan php artisan serve. Pada tampilan browser memang tidak akan keluar apa-apa. Kalian bisa langsung cek email di gmail kalian.


Berikut adalah contoh email yang berhasil dikirimkan dengan template sesuai dengan apa yang tadi kita buat.


Komentar

Postingan Populer