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.