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
Posting Komentar