laravel mailable | java php laravel linux mysql sql bootstrap html css query java php laravel linux mysql sql bootstrap html css query: laravel mailable

Sunday, April 12, 2026

laravel mailable

#Laravel #PHP #Mailable #Tutorial
๐Ÿ“š Artikel 32 dari 50 — Seri Belajar Laravel Lengkap

Mengirim Email di Laravel
Menggunakan Mailable

Kirim email dari aplikasi Laravel-mu dengan cara yang bersih, terstruktur, dan profesional — tanpa pusing konfigurasi dari nol.

⏱️
Estimasi Baca
8–10 Menit
๐ŸŽฏ
Level
Menengah
๐Ÿ—“️
Update
2025
๐Ÿ”ฅ
Laravel
v11.x

Pernah nggak sih kamu daftar ke sebuah website, terus langsung dapat email konfirmasi dalam hitungan detik? Atau reset password yang masuk ke inbox-mu secara otomatis? Nah, di balik semua itu ada fitur pengiriman email yang terintegrasi ke sistem. Dan kabar baiknya — kirim email di Laravel menggunakan Mailable itu jauh lebih mudah dari yang kamu bayangkan.

Kalau kamu lagi belajar web development dan sedang mengikuti seri 50 Artikel Belajar Laravel ini, artikel ke-32 ini adalah salah satu yang paling aplikatif. Kenapa? Karena hampir setiap aplikasi web butuh fitur email — mulai dari verifikasi akun, notifikasi order, sampai newsletter. Yuk, kita bedah tuntas!

๐Ÿ“ฌ Apa Itu Laravel Mailable?

Mailable adalah kelas PHP yang mewakili satu jenis email dalam aplikasi Laravel. Setiap email yang kamu kirim punya kelas Mailable-nya sendiri — misalnya WelcomeEmail, OrderConfirmation, atau PasswordReset. Pendekatan ini membuat kode lebih terstruktur, reusable, dan mudah ditest.

๐Ÿง  Memahami Konsep Kirim Email Laravel Mailable

Bayangkan kamu punya warung makan. Setiap jenis pesanan punya nota yang berbeda — nota untuk ayam goreng, nota untuk es teh, dst. Di Laravel, setiap jenis email = satu kelas Mailable. Ini beda banget dengan cara "jadul" yang langsung menulis logika email di dalam Controller. Dengan Mailable, email kamu punya "rumah" sendiri yang rapi.

Laravel menggunakan library Symfony Mailer di balik layar, dan menyediakan abstraksi yang bersih lewat facade Mail. Kamu bisa kirim email via SMTP, Mailgun, Amazon SES, Postmark, dan masih banyak lagi — hanya dengan mengubah konfigurasi.

๐Ÿ”ฅ
Fakta Menarik

Menurut Statista, lebih dari 347 miliar email dikirim dan diterima setiap hari di seluruh dunia pada 2023. Artinya, fitur email bukan sekadar pelengkap — ini adalah kebutuhan dasar aplikasi modern!

๐Ÿ“Š Perbandingan Driver Email di Laravel

Driver Kegunaan Gratis? Rekomendasi
SMTP Pengiriman via server SMTP ✅ Ya Development / produksi umum
Mailgun Transaksional email API ✅ Trial Produksi skala menengah
Amazon SES Email via AWS ๐Ÿ’ฐ Berbayar Volume besar / enterprise
log Tulis ke log file saja ✅ Ya Development / testing lokal
Mailtrap Fake SMTP untuk testing ✅ Free tier ⭐ Favorit developer

๐Ÿ› ️ Step-by-Step: Cara Kirim Email di Laravel Menggunakan Mailable

Oke, cukup teori. Sekarang kita masuk ke praktik. Ikuti langkah-langkah berikut untuk mengimplementasikan fitur kirim email Laravel Mailable dari nol di project-mu.

1

Konfigurasi File .env

Pertama, atur konfigurasi email di file .env. Untuk development, kita gunakan Mailtrap — layanan fake SMTP yang akan "menangkap" email kamu tanpa benar-benar mengirimnya.

# .env
MAIL_MAILER=smtp
MAIL_HOST=sandbox.smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=your_mailtrap_username
MAIL_PASSWORD=your_mailtrap_password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=noreply@example.com
MAIL_FROM_NAME="Aplikasi Ku"
๐Ÿ’ก
Tips

Daftar gratis di mailtrap.io, lalu pergi ke Email Testing → Inboxes → SMTP Settings. Copy username dan password dari sana ke file .env kamu. Mudah banget!

2

Generate Kelas Mailable

Jalankan perintah Artisan untuk membuat kelas Mailable baru. Laravel akan otomatis membuat file di folder app/Mail/.

# Terminal / Command Prompt
php artisan make:mail WelcomeEmail
3

Edit Kelas Mailable

Buka file app/Mail/WelcomeEmail.php dan modifikasi sesuai kebutuhan. Perhatikan penggunaan method envelope() dan content() di Laravel 11.

// app/Mail/WelcomeEmail.php
namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Queue\SerializesModels;

class WelcomeEmail extends Mailable
{
    use Queueable, SerializesModels;

    public function __construct(
        public string $userName
    ) {}

    public function envelope(): Envelope
    {
        return new Envelope(
            subject: 'Selamat Datang di Aplikasi Kami!',
        );
    }

    public function content(): Content
    {
        return new Content(
            view: 'emails.welcome',
        );
    }
}
4

Buat Template Blade untuk Email

Buat file view di resources/views/emails/welcome.blade.php sebagai template HTML email kamu.

<!-- resources/views/emails/welcome.blade.php -->
<!DOCTYPE html>
<html>
<body style="font-family: sans-serif; padding: 20px;">
    <h1>Halo, {{ $userName }}! ๐Ÿ‘‹</h1>
    <p>Selamat bergabung di platform kami.</p>
    <p>Terima kasih sudah mendaftar!</p>
</body>
</html>
5

Kirim Email dari Controller

Terakhir, panggil kelas Mailable dari Controller menggunakan facade Mail.

// app/Http/Controllers/UserController.php
use App\Mail\WelcomeEmail;
use Illuminate\Support\Facades\Mail;

public function register(Request $request)
{
    // Proses registrasi user...
    
    // Kirim email selamat datang
    Mail::to($request->email)
        ->send(new WelcomeEmail($request->name));

    return redirect()->route('dashboard')
        ->with('success', 'Email konfirmasi terkirim!');
}

๐Ÿš€ Fitur Lanjutan Laravel Mailable yang Perlu Kamu Tahu

Sudah bisa kirim email Laravel Mailable dasar? Sekarang saatnya naik level. Ada beberapa fitur powerful yang sering dipakai developer profesional.

Insight Penting: Attachment di Mailable

Perlu mengirim file PDF atau invoice via email? Gunakan method attachments() di dalam kelas Mailable:

public function attachments(): array
{
    return [
        Attachment::fromPath('/path/to/invoice.pdf')
            ->as('Invoice.pdf')
            ->withMime('application/pdf'),
    ];
}

๐Ÿ” Analisis: send() vs queue()

Ini adalah salah satu keputusan penting saat implementasi email di production:

๐Ÿ“ค Mail::to()->send()
  • Kirim langsung (sinkron)
  • Response HTTP menunggu
  • Cocok untuk email kritis
  • Bisa memperlambat app
⚡ Mail::to()->queue()
  • Kirim via background queue
  • Response HTTP cepat
  • Butuh worker queue
  • ⭐ Rekomendasi produksi
⚠️
Perhatian

Jangan pernah hardcode kredensial email langsung di kode PHP! Selalu simpan di file .env dan pastikan file tersebut ada di .gitignore. Kebocoran kredensial SMTP bisa disalahgunakan untuk mengirim spam.

๐Ÿ’ผ Tips Kirim Email Laravel Mailable di Production

Beda antara developer junior dan senior adalah bagaimana mereka menangani email di production. Ini beberapa best practice yang wajib kamu terapkan:

๐Ÿงช
Gunakan Preview Email

Laravel menyediakan route khusus untuk preview template email langsung di browser: Route::get('/email-preview', fn() => new WelcomeEmail('Budi'));

๐Ÿ“ฆ
Implementasikan Queue

Untuk email non-kritis, selalu gunakan queue() bukan send(). Ini mencegah request HTTP menjadi lambat karena menunggu SMTP server.

๐Ÿ“Š
Monitor Pengiriman

Gunakan layanan seperti Mailgun atau Postmark yang menyediakan dashboard tracking — kamu bisa lihat email mana yang delivered, bounced, atau dibuka.

๐Ÿ’ก
Bonus Tips: Laravel Markdown Mailables

Laravel menyediakan komponen Blade email yang sudah pre-styled dan mobile-responsive. Generate dengan perintah: php artisan make:mail WelcomeEmail --markdown=emails.welcome. Hasilnya adalah template profesional yang siap pakai tanpa perlu CSS manual!

๐ŸŽฏ

Kesimpulan

Hari ini kamu telah belajar cara kirim email di Laravel menggunakan Mailable dari awal hingga tips production. Mulai dari konfigurasi .env, generate kelas Mailable, membuat template Blade, hingga mengirim email dari Controller. Yang terpenting: gunakan queue untuk production, simpan kredensial di .env, dan manfaatkan Markdown Mailable untuk template yang lebih keren.

Ini adalah artikel ke-32 dari seri 50 Artikel Belajar Laravel. Masih banyak topik menarik yang menunggumu di seri ini!

Tag Topik:

#Laravel #PHP #Mailable #SendEmail #WebDevelopment #BelajarLaravel #SMTP

No comments:

Post a Comment

saifiahmada.com adalah blog belajar programming Indonesia, membahas lengkap materi bahasa pemrograman: code HTML, CSS, Bootstrap, Desain, PHP, MySQL, coding Java, Query, SQL, dan dunia linux