ahmadajah03 Fri Nov 2020 1 year ago

Bagaimana Cara Generate PDF dan Mengirim Email di Laravel?

Hai Semua,

Dalam posting ini, kita akan belajar laravel generate pdf dan mengirim email. Jika Anda memiliki pertanyaan tentang laravel mail attachment pdf maka saya akan memberikan contoh sederhana dengan solusinya. Pada artikel ini, kami akan menerapkan laravel lampiran email pengiriman dompdf. kami akan membantu Anda memberikan contoh generate pdf dan mengirim email dalam laravel.

Anda juga dapat menghasilkan pdf dan mengirim email di aplikasi laravel 6, laravel 7 dan laravel 8.

Dalam contoh ini, saya hanya akan menggunakan dompdf untuk menghasilkan file pdf dan mengirim email dengan lampiran pdf. Anda hanya perlu mengikuti beberapa langkah untuk membuat contoh sederhana mengirim email dengan file pdf yang dibuat di aplikasi laravel.

Mari kita lihat langkah-langkah berikut:

Langkah 1: Instal Laravel

Saya akan menjelaskan langkah demi langkah dari awal jadi, kita perlu mendapatkan aplikasi Laravel baru menggunakan perintah di bawah ini, Jadi buka terminal Anda ATAU command prompt dan jalankan perintah di bawah ini:

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

Langkah 2: Instal Paket dompdf

pertama-tama kita akan menginstal paket komposer barryvdh/laravel-dompdf dengan mengikuti perintah komposer di aplikasi laravel 8 Anda.

composer require barryvdh/laravel-dompdf

Setelah berhasil menginstal paket, buka file config/app.php dan tambahkan service provider dan alias.

'providers' => [
	....
	Barryvdh\DomPDF\ServiceProvider::class,
],
  
'aliases' => [
	....
	'PDF' => Barryvdh\DomPDF\Facade::class,
]

Langkah 3: Lakukan Konfigurasi

Pada langkah pertama, Anda harus menambahkan konfigurasi kirim email dengan driver email, host email, port email, nama pengguna email, sandi email sehingga laravel 8 akan menggunakan detail pengirim tersebut di email. Jadi Anda cukup menambahkan sebagai berikut.

.env

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=rrnnucvnqlbsl
MAIL_ENCRYPTION=tls
[email protected]
MAIL_FROM_NAME="${APP_NAME}"

Langkah 4: Tambahkan Route

Pada langkah ini kita perlu membuat route untuk daftar item. jadi buka file "routes/web.php" Anda dan tambahkan route berikut.

routes/web.php

<?php
  
use Illuminate\Support\Facades\Route;
  
use App\Http\Controllers\PDFController;
  
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
  
Route::get('send-email-pdf', [PDFController::class, 'index']);

Langkah 5: Tambahkan Controller

Di sini, kita perlu membuat pengontrol PDFController baru yang akan mengelola metode indeks route. Jadi mari kita letakkan kode di bawah ini.

app/Http/Controllers/PDFController.php

<?php
  
namespace App\Http\Controllers;
  
use PDF;
use Mail;
  
class PDFController extends Controller
{
    /**
     * Write code on Method
     *
     * @return response()
     */
    public function index()
    {
        $data["email"] = "[email protected]";
        $data["title"] = "From Medikre.com";
        $data["body"] = "This is Demo";
  
        $pdf = PDF::loadView('emails.myTestMail', $data);
  
        Mail::send('emails.myTestMail', $data, function($message)use($data, $pdf) {
            $message->to($data["email"], $data["email"])
                    ->subject($data["title"])
                    ->attachData($pdf->output(), "text.pdf");
        });
  
        dd('Mail sent successfully');
    }
}

Langkah 6: Buat File View

Pada langkah terakhir, mari buat myTestMail.blade.php (resources/views/email/myTestMail.blade.php) untuk layout file pdf dan masukkan kode berikut:

resources/views/emails/myTestMail.blade.php

<!DOCTYPE html>
<html>
<head>
    <title>Medikre.com</title>
</head>
<body>
    <h1>{{ $title }}</h1>
    <p>{{ $body }}</p>
     
    <p>Thank you</p>
</body>
</html>

Sekarang Anda dapat menjalankan dan memeriksa contoh.

Ini akan mengirimi Anda email, mari 'lihat.

Jalankan Project:

php artisan serve

Buka tautan:

localhost:8000/send-email-pdf

Output:

Saya harap ini dapat membantu Anda ...

generate pdf and send mail laravel mail laravel