Mengirim email adalah fitur umum yang sering diperlukan dalam aplikasi web. Laravel menyediakan dukungan yang kuat untuk pengiriman email melalui berbagai layanan. Dalam tutorial ini, kita akan menggunakan Mailtrap, sebuah layanan email testing gratis, untuk mengirim email dari aplikasi Laravel.

1. Instalasi Laravel

Jika belum memiliki proyek Laravel, buat proyek baru dengan perintah berikut:

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

2. Konfigurasi Mailtrap

  • Buat Akun Mailtrap: Daftar dan buat akun di [Mailtrap].
  • Dapatkan Kredensial SMTP: Setelah membuat akun, buat inbox baru dan catat detail SMTP yang diberikan.

3. Konfigurasi .env

Edit file .env di proyek Laravel kamu untuk menambahkan konfigurasi Mailtrap. Sesuaikan dengan kredensial yang kamu dapatkan:


MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=your_username
MAIL_PASSWORD=your_password
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=your_email@example.com
MAIL_FROM_NAME="${APP_NAME}"

Ganti your_username dan your_password dengan detail SMTP dari Mailtrap.

4. Buat Mail Class

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

php artisan make:mail ExampleMail

Ini akan membuat file ExampleMail.php di direktori app/Mail. Edit file tersebut sebagai berikut:


<?php

namespace App\Mail;

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

class ExampleMail extends Mailable
{
    use Queueable, SerializesModels;

    public $data;

    /
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct($data)
    {
        $this->data = $data;
    }

    /
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->view('emails.example')
                    ->subject('Contoh Email Laravel')
                    ->with('data', $this->data);
    }
}

5. Buat View Email

Buat view untuk email kamu. Buat file resources/views/emails/example.blade.php dan tambahkan kode berikut:


<!DOCTYPE html>
<html>
<head>
    <title>Contoh Email Laravel</title>
</head>
<body>
    <h1>{{ $data['title'] }}</h1>
    <p>{{ $data['message'] }}</p>
</body>
</html>

6. Kirim Email

Untuk mengirim email, kamu dapat melakukannya dari route, controller, atau command. Berikut adalah contoh pengiriman email dari route di web.php:


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

Route::get('/send-email', function () {
    $data = [
        'title' => 'Halo dari Laravel',
        'message' => 'Ini adalah email percobaan yang dikirim dari aplikasi Laravel.'
    ];

    Mail::to('recipient@example.com')->send(new ExampleMail($data));

    return 'Email telah dikirim!';
});

Ganti `'recipient@example.com'` dengan alamat email tujuan yang ingin kamu gunakan.


7. Jalankan Aplikasi

Jalankan server Laravel:

php artisan serve

Akses http://localhost:8000/send-email di browser kamu. Jika semuanya dikonfigurasi dengan benar, kamu akan melihat pesan "Email telah dikirim!" dan kamu dapat memeriksa inbox Mailtrap kamu untuk melihat email yang dikirim.

Kesimpulan

Dalam tutorial ini, kita telah belajar cara mengirim email dengan Laravel menggunakan layanan Mailtrap. kamu dapat menggunakan pendekatan serupa dengan layanan email lain seperti Mailgun, SendGrid, atau Amazon SES dengan menyesuaikan konfigurasi SMTP di file .env. Dengan fitur ini, kamu dapat menambahkan berbagai fungsi pengiriman email ke aplikasi kamu, seperti verifikasi akun, reset password, dan notifikasi lainnya. Semoga bermanfaat dan selamat mencoba!