Halo Dev, di artikel ini saya akan membagikan cara menghasilkan PDF dan melampirkannya ke email. Saya sedang menguji di Laravel 8.9.0 . Mari kita mulai:
Daftar Isi
Instal Laravel dan Konfigurasi Dasar
Setiap proyek Laravel membutuhkan hal ini. Itu sebabnya saya menulis artikel tentang topik ini. Silakan lihat bagian ini dari sini: Instal Laravel dan Konfigurasi Dasar.
Instal Package & Config
Pertama kita perlu menginstal barryvdh/laravel-dompdf
paket. Jalankan perintah komposer ini untuk menginstal paket:
composer require barryvdh/laravel-dompdf
Sekarang buka file .env dan atur kredensial SMTP Anda:
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"
Buat Controller
Buat controller test dan buat fungsi untuk mengirim email:
<?php
namespace App\Http\Controllers;
use PDF;
use Mail;
class TestController extends Controller
{
public function sendMailWithPDF()
{
$data["email"] = "[email protected]";
$data["title"] = "Welcome to Medikre";
$data["body"] = "This is the email body.";
$pdf = PDF::loadView('mail', $data);
Mail::send('mail', $data, function ($message) use ($data, $pdf) {
$message->to($data["email"], $data["email"])
->subject($data["title"])
->attachData($pdf->output(), "test.pdf");
});
dd('Email has been sent successfully');
}
}
Buat Tampilan PDF
Sekarang kita akan membuat tampilan PDF yang akan dilampirkan ke email. Buka folder resource>views dan buat file mail.blade.php. Kemudian tempel tampilan PDF sederhana ini:
<!DOCTYPE html>
<html>
<head>
<title>Medikre</title>
</head>
<body>
<h3>{{ $title }}</h3>
<p>{{ $body }}</p>
<p>
Regards,<br/>
mynotepaper.com
</p>
</body>
</html>
Tentukan Route
Buka file routes/web.php dan tambahkan route berikut:
use App\Http\Controllers\TestController;
use Illuminate\Support\Facades\Route;
Route::get('send-email', [TestController::class, 'sendMailWithPDF']);
Sekarang jalankan proyeknya:
php artisan serve
Kunjungi route kirim email:
http://localhost:8000/send-email
laravel example generate pdf and attach to email
laravel