Laravel 10 Generate PDF And Attach To Email Example

31-May-2023

.

Admin

Laravel 10 Generate PDF And Attach To Email Example

Hi Dev,

This example is focused on Laravel 10 generate PDF and attach it to the email example. We will look at an example of how to generate a PDF and attach it to an email example in Laravel 10. I explained simply about Laravel 10 pdf with attach to email. This article will give you a simple example of Laravel 10 pdf. Follow the below tutorial step on how to generate a PDF.

In this article, I’m going to share how to generate PDF and attach it to the email.

I will give you step by step implementation of how to use Laravel 10 to generate a PDF and attach it to an email example. So let's follow the below step.

Step 1: Download Laravel


Let us begin the tutorial by installing a new Laravel application. if you have already created the project, then skip the following step.

composer create-project laravel/laravel example-app

Step 2: Install Package & Config

First, we need to install barryvdh/laravel-dompdf package. Run this composer command to install the package:

composer require barryvdh/laravel-dompdf

Now open the .env file and set your SMTP credentials:

.env

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}"

Step 3: Add Controller

Create a test controller and make a function to send emails:

app/Http/Controllers/TestController.php

<?php

namespace App\Http\Controllers;

use PDF;

use Mail;

class TestController extends Controller

{

/**

* Write code on Method

*

* @return response()

*/

public function sendMailWithPDF()

{

$data["email"] = "test@gmail.com";

$data["title"] = "Welcome to NiceSnippets.com";

$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');

}

}

Step 4: Add PDF Blade File

Now we’ll create the PDF view which will be attached to the email. Go to resources>views folder and create a mail.blade.php file. Then paste this simple PDF view:

resources/views/mail.blade.php

<!DOCTYPE html>

<html>

<head>

<title>Laravel 10 Generate PDF And Attach To Email Example - NiceSnippets.com</title>

</head>

<body>

<h3>{{ $title }}</h3>

<p>{{ $body }}</p>

<p>

Regards,<br/>

NiceSnippets.com

</p>

</body>

</html>

Step 5: Add Route

routes/web.php

<?php

use App\Http\Controllers\TestController;

use Illuminate\Support\Facades\Route;

/*

|--------------------------------------------------------------------------

| 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', [TestController::class, 'sendMailWithPDF']);

Run Laravel App:

All steps have been done, now you have to type the given command and hit enter to run the Laravel app:

php artisan serve

Now, you have to open the web browser, type the given URL and view the app output:

http://localhost:8000/send-email

I hope it will help you...

#Laravel 10