Laravel Mail adalah sebuah fitur pada framework Laravel yang memungkinkan pengembang untuk mengirimkan email dari aplikasi web mereka secara efisien dan mudah. Laravel Mail menyediakan API yang kuat dan sederhana untuk mengirim email dengan berbagai driver seperti SMTP, Mailgun, Amazon SES, dan lain sebagainya. Dalam Laravel Mail, email dapat dikirim dalam berbagai format seperti plain text, HTML, atau kombinasi keduanya. Selain itu, pengembang juga dapat menggunakan template untuk mengatur tampilan email yang akan dikirimkan.
Laravel Mail memudahkan pengembang untuk mengirimkan email dalam jumlah besar dengan cara yang efisien. Fitur ini juga menyediakan dukungan untuk antrian email, yang memungkinkan pengembang untuk menunda pengiriman email sampai waktu yang ditentukan atau sampai suatu kondisi tertentu terpenuhi.
Dalam penggunaannya, Laravel Mail dapat diakses melalui API atau melalui fungsi-fungsi bawaan seperti Mail::to() dan Mail::send(). Selain itu, Laravel Mail juga menyediakan kemampuan untuk menerima email dengan fitur “Mailtrap” yang dapat digunakan untuk menguji dan mengembangkan aplikasi email tanpa harus mengirimkan email ke alamat email sebenarnya.
Dalam keseluruhan, Laravel Mail merupakan fitur yang kuat dan mudah digunakan untuk mengirimkan email dari aplikasi web menggunakan berbagai driver email dan dapat digunakan untuk mengirimkan email dalam jumlah besar dengan cara yang efisien.
Mailtrap.io
Mailtrap adalah sebuah layanan simulasi SMTP yang digunakan untuk menguji pengiriman email pada sebuah aplikasi laravel. Mailtrap menawarkan alamat email palsu yang dapat digunakan oleh pengembang untuk mengirimkan email dari aplikasi mereka. Email yang dikirimkan ke alamat email palsu ini akan disimpan pada server Mailtrap dan dapat dilihat dan dianalisis oleh pengembang untuk memastikan bahwa email yang dikirimkan sesuai dengan harapan. Mailtrap juga menyediakan fitur untuk melihat isi email, melihat header email, dan memantau kinerja email, sehingga pengembang dapat melakukan debugging pada aplikasi laravel kita.
Menggunakan Mailtrap
Setelah kita mendaftar akun di mailtrap kemudian kita harus memilih integration api yang disediakan menggunakan laravel agar muncul settingan env seperti gambar diatas. Setelah itu copy kode tersebut kemudian replace setting email yang berada di file .env kita sebagai berikut :
MAIL_MAILER=smtp
MAIL_HOST=sandbox.smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=a79162c3a58221
MAIL_PASSWORD=f7d7ab597be497
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=”{email kita}”
MAIL_FROM_NAME=”${APP_NAME}”
Membuat Mail
php artisan make:mail SendEmail Struktur SendEmail.php : <?php namespace App\Mail; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Mail\Mailable; use Illuminate\Mail\Mailables\Content; use Illuminate\Mail\Mailables\Envelope; use Illuminate\Queue\SerializesModels; use Illuminate\Mail\Mailables\Address; class SendEmail extends Mailable { use Queueable, SerializesModels; public function __construct() { } public function envelope() { return new Envelope( from: new Address(‘(email kita)’, ‘(aliases)’) ); } public function content(): Content { return new Content( view: ’emails.first’ ); } public function attachments() { return []; } } |
ROUTES
Kita dapat menggunakan routes sebagai berikut, ini merupakan contoh untuk membuat routes untuk mengirim email
Route::post('/send-email', function (Illuminate\Http\Request $request) {
$emailTo = $request->input('emailto');
$subject = $request->input('subject');
$emailBody = $request->input('email');
$email = new App\Mail\SendEmail($subject, $emailBody);
if ($request->hasFile('attachment')) {
$attachment = $request->file('attachment');
$email->attach($attachment->getRealPath(), [
'as' => $attachment->getClientOriginalName(),
'mime' => $attachment->getMimeType(),
]);
}
Mail::to($emailTo)->send($email);
session()->flash('success', 'Email berhasil dikirim');
return redirect('/email');
});