Mengirim Email Menggunakan SMTP Gmail di Laravel
WhatsApp Icon

Mengirim Email Menggunakan SMTP Gmail di Laravel

Foto profil Edhik P
Oleh Edhik PFull-Stack Developer & Pro Digital AdsPerkiraan waktu baca: 3 menit

Kita akan membahas bagaimana cara menggunakan SMTP Gmail untuk mengirim email melalui Laravel. Langkah-langkah yang kita lakukan mulai dari konfigurasi akun Gmail agar dapat digunakan untuk mengirim email, setup Laravel, dan implementasi untuk mengirim email. 

ada beberapa hal yang harus teman-teman siapkan:

  1. Akun Gmail aktif.
  2. Nomor telepon yang masih aktif untuk mengaktifkan fitur verifikasi dua langkah (2-Step Verification) pada akun Gmail, yang diperlukan untuk membuat App Password.

 

Langkah 1 -  Mengaktifkan App Password di Gmail

Langkah pertama adalah mengkonfigurasi akun Gmail agar bisa digunakan untuk mengirim email melalui aplikasi Laravel.

  • Login ke Akun Google, lalu masuk ke menu Akun Saya (My Account).
  • Masuk ke bagian Keamanan (Security).Screenshot 2024-10-17 at 14.23.01.png
  • Di bawah bagian Cara masuk ke Google (How you sign in to Google), aktifkan Verifikasi 2 Langkah (2-Step Verification).
  • Ikuti instruksi untuk menyelesaikan verifikasi, seperti memasukkan nomor telepon yang masih aktif untuk menerima kode verifikasi dari Google.
  • Setelah fitur verifikasi dua langkah diaktifkan, kembali ke halaman keamanan dan pilih App Passwords.Screenshot 2024-10-17 at 14.23.29.png
  • Pada halaman App Passwords, buat password baru dengan nama aplikasi, misalnya "Laravel SMTP".Screenshot 2024-10-17 at 14.24.18.png
  • Simpan App Password yang dihasilkan karena akan kita gunakan untuk konfigurasi Laravel nanti.PASSWORD (1).png

 

Langkah 2 - Installasi Laravel

Setelah menyelesaikan pengaturan Gmail, kita akan membuat proyek Laravel baru.

Gunakan perintah berikut untuk membuat proyek baru:

composer create-project --prefer-dist laravel/laravel laravel-smtp-email

tunggu sampai proses installasi selesai.

 

Langkah 3 - Konfigurasi Database

Setelah selesai, buka file .env di dalam proyek Laravel dan sesuaikan konfigurasi email seperti ini:

MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=app_password_hasil_generate_tanpa_spasi
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS="[email protected]"
MAIL_FROM_NAME="Tutorial Kodemastery"

Pada bagian MAIL_PASSWORD, masukkan App Password yang telah teman-teman buat di langkah pertama. Jangan lupa simpan setelah konfigurasi.

Jalankan perintah berikut untuk membuat mailable baru:

php artisan make:mail TestEmail

 

Langkah 4 - Uji coba Tes Email

Setelah berhasil dibuat, buka file app/Mail/TestEmail.php dan modifikasi menjadi seperti berikut:

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class TestEmail extends Mailable
{
    use Queueable, SerializesModels;

    public $emailData;

    public function __construct($emailData)
    {
        $this->emailData = $emailData;
    }

    public function build()
    {
        return $this->subject($this->emailData['subject'])
                    ->view('emails.test_email');
    }
}

Pada kode di atas, kita mengirim data email melalui variabel $emailData yang berisi detail seperti subjek dan konten email.

Selanjutnya, buat file resources/views/emails/test_email.blade.php untuk template email:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Email Uji Coba</title>
</head>
<body>
    <h1>{{ $emailData['title'] }}</h1>
    <p>{{ $emailData['message'] }}</p>
</body>
</html>

File ini akan menjadi template untuk email yang kita kirim.

Sekarang kita tambahkan route untuk mengirim email. Buka file routes/web.php dan tambahkan kode berikut:

<?php

use Illuminate\Support\Facades\Mail;
use App\Mail\TestEmail;
use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    return view('welcome');
});

Route::get('/send-email', function () {
    $emailData = [
        'subject' => 'Email Uji Coba SMTP',
        'title' => 'Pengujian SMTP Laravel',
        'message' => 'Ini adalah email uji coba yang dikirim menggunakan SMTP Gmail di Laravel - Kodemastery.'
    ];

    Mail::to('[email protected]')->send(new TestEmail($emailData));

    return 'Email berhasil dikirim!';
});

Pada route ini, kita menggunakan Mail Facade untuk mengirim email. Alamat email tujuan dan konten email diatur di dalam array $emailData.

jalankan server Laravel dengan perintah berikut:

php artisan serve

Buka browser dan akses URL berikut untuk mengirim email:

http://127.0.0.1:8000/send-email

Jika konfigurasi sudah benar, email akan terkirim dan muncul pesan "Email berhasil dikirim!".

 

 

 

Artikel terkait