Salah satu fitur menarik di Laravel yang tak boleh dilewatkan adalah mail. dengan fitur ini, kita dapat mengirim email langsung dari aplikasi. Agaknya, email memang sebuah fitur yang umumnya harus ada dalam aplikasi berbasis web. Laravel sendiri menggunakan package yang sudah matang dan ada lebih dulu, yaitu SwiftMailer. Untuk implementasinya, Laravel menyediakan sebuah wrapper (dalam bentuk class) untuk mengakses package SwitfMailer secara tak langsung. Tersedianya wrapper ini juga memungkinkan email dikirim dalam berbagai jenis driver, seperti SMTP atau fungsi mail dalam PHP. Bahkan, memungkinkan pemrogram untuk menggunakan berbagai layanan pihak ketiga seperti Mailgun, SparkPost, Amazon SES, dan lain sebagainya. perlu diperhatikan, beberapa layanan email pihak ketika membutuhkan Guzzle Client agar dapat bekerja sebagaimana mestinya. $ composer require guzzle/guzzlehttp Untuk mengirim email, kita cukup menggunakan facade Mail. Sebelumnya, terlebih dahulu atur konfigurasi SMTP dalam berkas Sebagai bawaan, Laravel mendefisinakn nilai default berupa SMTP dari Mailtrap.io. Jika ingin mencoba Mailtrap.io, kalian cukup mendaftar untuk mendapatkan username dan password SMTP. Oh ya, Mailtrap.io sendiri merupakan layanan untuk uji coba kotak masuk. Semua email yang dikirim dari aplikasi nantinya dapat diakses pada kotak masuk Mailtrap.io. Berikut contoh penggunaan sederhana pengiriman email menggunakan Laravel. public function send() Jangan lupa untuk mengimpor facade use Illuminate\Support\Facades\Mail; // atau cukup ditulis dengan alias Apabila alamat pengirim tidak didefinisikan menggunakan method Argumen pertama pada method <h2>Halo, {{ $user->name }}</h2> Selain method $message->sender($address, $name = null); Sebagai bawaan, mail berasumsi akan menggunakan template blade yang mengandung
HTML. Jika ingin mengirim pesan hanya dalam bentuk teks, kita dapat menggunakan method Mail::raw('Selamat datang', function($mail){}); Kita juga dapat mengkombinasikan mail berupa HTML dan teks dalam satu skrip. Hal ini sebagai antisipasi aplikasi email di klien tidak mendukung format HTML. Mail::send(['html.view', 'text.view'], $data, function($mail){}); MailableMailable sebenarnya tidak jauh berbeda dengan konsep kirim email di atas. Hanya saja, mailable dibuat berada pada berkas terpisah dalam class khusus. Dengan dipisahkannya proses ini, memungkinkan email dapat digunakan secara berulang (reusable) di berbagai tempat (controller, event, queue, dll). Selain itu, berkas tempat menyimpan proses kirim email dapat dengan mudah diorganisir. Untuk membuat mailable, kita dapat menjalankan perintah generate dari Artisan. $ php artisan make:mail UserRegisterMail Jika perintah di atas berhasil, maka akan dibuat direkoktori baru dengan nama
Dalam berkas <?php Sebagai contoh, class di atas berfungsi untuk mengirim sebuah email ke pengguna terdaftar dalam pangkalan data. Saya menambahkan properti Jangan lupa untuk membuat template blade dengan nama Untuk penggunaan di controller, class public function register(Request $request): RedirectResponse Contoh implementasi mailable dapat kalian coba pada registrasi glosarium.web.id. Tak hanya implementasi, skripnya pun dapat kalian lihat langsung pada repositori web Glosarium. |