Laravel 8 Markdown | Laravel 8 Send Email using Markdown Example
I am going to show you example of laravel 8 send markdown email. it's simple example of laravel 8 mail send markdown. you can understand a concept of laravel 8 send mail using markdown. i explained simply step by step laravel 8 markdown mail templates. follow bellow step for laravel 8 markdown mail settings.
Laravel Markdown provides components, tables, email link, button, embed image etc. Markdown beautiful layout you can use with email template.
In this tutorial, i am going to tell you how to send simple email with gmail smtp configuration using laravel 8 mailable class. It is very simple and best way. you have to just follow few step and you will get simple mail send example in your laravel 8 application.
Follow bellow step in your laravel 8 project.
Step 1: Set Mail Configuration
In first step you have to add your gmail smtp configuration like your username, password etc, so open your .env file and add your configration.
.env
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=itsolutionstuff@gmail.com
MAIL_PASSWORD=mypassword
MAIL_ENCRYPTION=tls
If you don't know how to do configuration or found any error about gmail authentication then you can follow this link : How to set gmail configration for mail in Laravel?.
Step 2: Create Mailable Class with Markdown
Laravel 8 introduce new mailable class that way we can use simply like laravel event, you can re-use anywhere in your laravel application. So first create Mailable class using artisan command, so fire bellow command:
php artisan make:mail MyDemoMail --markdown=emails.myDemoMail
Ok, Now you can see new file in your app(app/Mail/MyDemoMail.php) folder. So, open that file and put bellow code.
app/Mail/MyDemoMail.php
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class MyDemoMail extends Mailable
{
use Queueable, SerializesModels;
public $details;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($details)
{
$this->details = $details;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->markdown('emails.myDemoMail')
->with('details', $this->details);
}
}
Step 3: Create Route
In this step, we will add new route for out testing mail so open your web route file and add bellow route.
routes/web.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\HomeController;
/*
|--------------------------------------------------------------------------
| 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('my-demo-mail', [HomeController::class, 'myDemoMail']);
Step 4: Create Controller Method
Now, we will add myDemoMail() in "HomeController" Controller file, in this file we will write code of mail send, so if you haven't created HomeController then create HomeController.php file and put bellow code.
In $myEmail variable, you can set your own email for testing mail.
app/Http/Controllers/HomeController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Mail\MyDemoMail;
use Mail;
class HomeController extends Controller
{
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function myDemoMail()
{
$myEmail = 'aatmaninfotech@gmail.com';
$details = [
'title' => 'Mail Demo from ItSolutionStuff.com',
'url' => 'https://www.itsolutionstuff.com'
];
Mail::to($myEmail)->send(new MyDemoMail($details));
dd("Mail Send Successfully");
}
}
Step 5: Add View File
In last step, we will create email template file, so first create "emails" folder in your resources folder and create myDemoMail.blade.php file and put bellow code.
resources/views/emails/myDemoMail.blade.php
@component('mail::message')
# {{ $details['title'] }}
The body of your message.
@component('mail::button', ['url' => $details['url']])
Button Text
@endcomponent
Thanks,<br>
{{ config('app.name') }}
@endcomponent
Ok, now you ready to run our test example, so check it...
You can run your project by using following command:
php artisan serve
Now open this url:
localhost:8000/my-demo-mail
[VIDEO]
I hope it can help you...
Hardik Savani
I'm a full-stack developer, entrepreneur and owner of ItSolutionstuff.com. I live in India and I love to write tutorials and tips that can help to other artisan. I am a big fan of PHP, Laravel, Angular, Vue, Node, Javascript, JQuery, Codeigniter and Bootstrap from the early stage. I believe in Hardworking and Consistency.
We are Recommending you
- Laravel 8 REST API with Passport Authentication Tutorial
- Laravel 8 Cron Job Task Scheduling Tutorial
- Laravel 8 Inertia JS CRUD with Jetstream & Tailwind CSS
- Laravel 8 Queue Step by Step Tutorial Example
- Laravel 8 Yajra Datatables Example Tutorial
- Laravel 8 Import Export Excel and CSV File Tutorial
- Laravel 8 Guzzle Http Client Request Example
- Laravel 8 Livewire CRUD with Jetstream & Tailwind CSS
- Laravel 8 Send Mail using Gmail SMTP Server
- Laravel 8 Mail | Laravel 8 Send Email Tutorial
- Laravel 8 Authentication using Jetstream Example
- Laravel 8 CRUD Application Tutorial for Beginners