Learn about Markdown templates with the help of the Laravel Mail Example. Here’s a tutorial for you on how to send an email using Laravel Markdown Template?
2. Sending an email is one most important
features of any project. In this tutorial, you
will learn how to send emails using
Markdown Template with the help of
Laravel Mail Example. Implementation of
the Markdown template is not a difficult
task. Yes, you heard it correctly! But, still
you haven’t played around it, here’s a step-
by-step tutorial, that will provide you with
instructions for sending an email using
Markdown.
3. CONTENTS
Tutorial Goal: Laravel Mail Example
using Markdown Template
1.
2. Step-by-step guidelines: Laravel Mail
Example: How to Send an Email using
Markdown Template in Laravel 8?
3. Conclusion
5. Before diving into building a demo
application, let’s see this video to clarify
what we are building here.
https://youtu.be/RXeAD0qOEB8
The user will enter the name and email
address, and after clicking on submit
button, an email will be sent to the entered
email address. Login to that email address,
and there you can see the email.
8. We are going to Set Mail Configuration here.
For that, we will add our Gmail SMTP
configuration such as name, password, etc.
(Allow two-step verification and control
access to less secure apps. in Gmail). We will
use our .env file and add the configurations,
which are described below.
.env
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=prashantkhunt1999@gmail.com
MAIL_PASSWORD= (third party app password <a
href="https://support.google.com/accounts/answer/
185833?hl=en" target="_blank">click hear</a>)
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=prashantkhunt1999@gmail
.com
MAIL_FROM_NAME="${APP_NAME}"
Step 2: Configuration Setup.
9. In this section, we will create Mailable Class
with Markdown. A new Mailable class,
which provides us to use Laravel event. It
also provides the facility to re-use them
anywhere in the application. For this, we
will first create a class of Mailable, and for
that, we will run the below artisan
command-
Step 3: Create Mail with
Markdown
php artisan make:mail BacancyMail --
markdown=emails.BacancyMail
10. app/Mail/BacancyMail.php
resources/views/emails/BacancyMail.bl
ade.php
By running the above command, two files
are generated:
Open the BacancyMail.php file in our app
folder and then write the below code.
app/Mail/BacancyMail.php
<?php
namespace AppMail;
use IlluminateBusQueueable;
use
IlluminateContractsQueueShouldQueue;
use IlluminateMailMailable;
use IlluminateQueueSerializesModels;
11. use Queueable, SerializesModels;
public $body;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($body)
{
$this->body = $body;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->markdown('emails.BacancyMail')-
>with('body',$this->body);
}
}
12. Step 4: Create a Controller
for Mail.
In this step, we are going to create
Controller Method. We will Create
MailController as a new controller. Run the
following command to create
MailController.
php artisan make:controller MailController
Now we will use our MailController file and
add the sendMail() function into it. Using this
file, we can quickly write the mail send code,
which is described as follows.
13. <?php
namespace AppHttpControllers;
use AppMailBacancyMail;
use IlluminateHttpRequest;
use Mail;
class MailController extends Controller
{
public function sendMail(Request $request)
{
$data = $request->validate([
'name'=>'required',
'email'=>'required|email'
]);
$email = $data['email'];
$body = [
'name'=>$data['name'],
app/http/Controllers/MailController
15. Step 5: Create a simple form
Moving forward towards our Laravel Mail
Example, now we will create one form in
this step that takes the name and email
from the user.
Open resources/views/welcome.blade.php
and add the below-mentioned code in the
body section of the welcome page.
resources/views/welcome.blade.php
19. In step 3, we have created a blade file
named BacancyMail.blade.php for an email
template. This file will be useful to write the
design code. We will add the below code
into that file.
resources/views/emails/BacancyMail.blade.
php
@component('mail::message')
<h1>Hello {{$body['name']}},</h1>
<p>The email is a sample email for Laravel
Tutorial: How to Send an Email using
Laravel 8 from @component('mail::button',
['url' => $body['url_a']])
Bacancy Technology
@endcomponent</p>
Step 6: Create Body for the
Mail.
20. <p>Visit @component('mail::button', ['url' =>
$body['url_b']])
Laravel Tutorials
@endcomponent and learn more about the
Laravel framework.</p>
Happy coding!<br>
Thanks,<br>
{{ config('app.name') }}<br>
Laravel Team.
@endcomponent
21. In this step, we are going to Create Route.
We will create this for our testing mail. For
this, we will use our web route file; go to the
web.php file and define the following route.
web.php
Route::get('/', function () {
return view('welcome');
});
Route::post('/sendBacancyMail',
[MailController::class,'sendMail'])-
>name('send.email');
Step 7: Define the Route.
22. Now, finally we are done with out Laravel
mail example. Run the project by using this
command:
php artisan serve.
Step 8: Run the project
Hit http://127.0.0.1:8000/, and you’ll see the
user interface. Enter the name and email
address; you’ll receive an e-mail on that email
id.
You can find the entire the source code here –
Github Repository.
24. So, this was a beginner’s guide on how to
send email using the Markdown template in
Laravel 8. Laravel Mail example was pretty
straightforward, right? So, clone the github
repository and start playing around with
the code! I hope the Laravel Markdown
email example was helpful to you. Visit
Laravel Tutorial to explore more about
Laravel.
Bacancy Technology has dedicated and
skilled Laravel developers. Are you looking
for a Laravel expert? If yes, then without
wasting a second, contact us and hire
Laravel developer. We ensure to provide the
best and proficient Laravel developers who
can meet your requirements.
Happy Coding!