Mengirim email — untuk verifikasi akun, notifikasi, atau reset password — adalah fitur wajib di banyak aplikasi. Laravel memudahkannya lewat class Mailable. Artikel ini memandu Anda mengirim email memakai SMTP Gmail dari awal.
Langkah 1: Siapkan App Password Gmail
Gmail tidak lagi mengizinkan login SMTP dengan password biasa. Anda perlu App Password:
- Aktifkan verifikasi 2 langkah di akun Google Anda.
- Buka Google Account → Security → App passwords.
- Buat password aplikasi baru, salin 16 karakter yang muncul.
Langkah 2: Konfigurasi .env
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=emailanda@gmail.com
MAIL_PASSWORD=app_password_16_karakter
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=emailanda@gmail.com
MAIL_FROM_NAME="Nama Aplikasi"
Setelah mengubah .env, jalankan php artisan config:clear.
Langkah 3: Buat Class Mailable
php artisan make:mail WelcomeMail
Atur isi email di app/Mail/WelcomeMail.php:
public function build()
{
return $this->subject('Selamat Datang!')
->view('emails.welcome');
}
Langkah 4: Buat View Email
Buat file resources/views/emails/welcome.blade.php:
<h1>Halo, {{ $nama }}!</h1>
<p>Terima kasih sudah mendaftar di aplikasi kami.</p>
Langkah 5: Kirim Email
use Illuminate\Support\Facades\Mail;
use App\Mail\WelcomeMail;
Mail::to('penerima@email.com')->send(new WelcomeMail());
Tips: Kirim Email Lewat Queue
Mengirim email bisa lambat dan menahan response. Sebaiknya jalankan lewat queue agar halaman tetap responsif:
Mail::to($user)->queue(new WelcomeMail());
Mengatasi Error Umum
- "Failed to authenticate": Anda memakai password biasa, bukan App Password. Gunakan App Password.
- Connection timeout: port/enkripsi salah — gunakan port
587dengantls, atau465denganssl. - Email masuk spam: untuk produksi serius, pertimbangkan layanan seperti Mailgun atau Amazon SES dengan domain terverifikasi.
Kesimpulan
Mengirim email di Laravel cukup: buat App Password Gmail, atur .env, buat Mailable + view, lalu kirim dengan Mail::to(). Untuk performa, gunakan queue. Gmail cocok untuk pengembangan dan volume kecil; untuk skala besar, beralihlah ke layanan email khusus.