Virus Corona (Covid-19)

Dapatkan Informasi terbaru

Laravel - Contoh Generate PDF dan Attach ke Email

If Man 05 Jan 2021 11

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:

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"] = "test@gmail.com";
        $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

Tags

laravel laravel example generate pdf and attach to email

Related Stories


Latest Stories