Home Mobile Laravel 11 : Send Mail by Gmail SMTP

Laravel 11 : Send Mail by Gmail SMTP

0

Mengirim Email Menggunakan Gmail SMTP di Laravel 11

Mengirim email adalah fitur umum dalam aplikasi web, dan Laravel memudahkan proses ini dengan dukungan yang kuat untuk berbagai layanan pengiriman email, termasuk Gmail SMTP. Berikut adalah langkah-langkah untuk mengatur pengiriman email menggunakan Gmail SMTP di Laravel 11.

Instal laravel 11

Jika Anda belum memiliki aplikasi Laravel 11, buat aplikasi baru terlebih dahulu:

composer create-project --prefer-dist laravel/laravel nama_aplikasi

Konfigurasi Environment

Buka file .env di root proyek Laravel Anda dan tambahkan konfigurasi SMTP Gmail seperti berikut:

MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=your-email-password
MAIL_ENCRYPTION=tls
[email protected]
MAIL_FROM_NAME="${APP_NAME}"

Pastikan untuk mengganti [email protected] dan your-email-password dengan kredensial Gmail Anda.

cara mendapatan kredensial mail https://www.barajacoding.or.id/cara-mendapatkan-kredensial-token-email/

Buat Mail Class

Laravel menyediakan artisan command untuk membuat kelas mail. Jalankan perintah berikut untuk membuat mail class:

php artisan make:mail ContohMail

Ini akan membuat file ContohMail.php di direktori app/Mail.

Konfigurasi Mail Class

Buka file ContohMail.php dan konfigurasikan konten email Anda:

namespace App\Mail;

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

class ContohMail extends Mailable
{
    use Queueable, SerializesModels;

    public $details;

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

    public function build()
    {
        return $this->subject('Contoh Email dari Laravel')
                    ->view('emails.contoh');
    }
}

Buat View untuk Email

Buat view untuk email di direktori resources/views/emails/contoh.blade.php:

<!DOCTYPE html>
<html>
<head>
    <title>Contoh Email</title>
</head>
<body>
    <h1>{{ $details['title'] }}</h1>
    <p>{{ $details['body'] }}</p>
    <p>Terima kasih!</p>
</body>
</html>

Kirim Email

Anda dapat mengirim email menggunakan Mail facade di Laravel. Tambahkan rute atau metode untuk mengirim email di salah satu controller Anda. Contoh:

use Illuminate\Support\Facades\Mail;
use App\Mail\ContohMail;

Route::get('send-email', function () {
    $details = [
        'title' => 'Judul Email',
        'body' => 'Ini adalah contoh body email.'
    ];

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

    return 'Email telah dikirim!';
});

Pengujian

Jalankan server Laravel Anda dan akses rute send-email untuk mengirim email:

php artisan serve

Buka browser dan akses http://localhost:8000/send-email. Jika semuanya dikonfigurasi dengan benar, Anda akan melihat pesan “Email telah dikirim!” dan email akan terkirim ke alamat email penerima.

Catatan Tambahan

Pastikan Anda telah mengaktifkan akses aplikasi kurang aman di akun Gmail Anda jika Anda mengalami masalah autentikasi.Pertimbangkan menggunakan layanan email yang lebih aman untuk produksi, seperti SendGrid atau Mailgun, karena menggunakan kredensial Gmail secara langsung dapat memiliki keterbatasan dan risiko keamanan.