Skip to main content

How to Create and Send an Email in Laravel

Emailing doesn’t have to be a headache. With Laravel’s clean, simple email API powered by the popular Symfony Mailer component, you can quickly get started sending mail through a local or cloud-based service of your choice. The Laravel and Symfony Mailer APIs allow you to send email via SMTP, Mailgun, Postmark, Amazon SES (Simple Email Service), and Sendmail.

When you’re ready to send an email in your Laravel application, there are a few options you have. In this tutorial, we’ll look at the most straightforward way to use the Mail class in Laravel to send emails.


[email protected]



namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class MainMail 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->subject('Due for Reviewing')->view('mails.duedate');


<!DOCTYPE html>
    <title>Your Company: {{ $details['title'] }}</title>
    <h1>{{ $details['title'] }}</h1>
    {!! $details['body'] !!}




namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Auth;

use App\Equipment;
use App\Mail;

class EmailController extends Controller

    public function sendMail(){
        $details = [
            'title' => 'Due for Review',
            'body' => '<p>There are equipment that needs your atention: </p>'

        $details['body'] .= '<ul>';
        $dueInspections = Equipment::all();
        foreach($dueInspections as $equipment){
            $details['body'] .= '<li>'.$equipment->name.'<li>';
        $details['body'] .= '</ul>';

        \Mail::to('[email protected]')->send(new \App\Mail\MainMail($details));




Route::get('send-mail', 'EmailController@sendMail')->name('sendMail');

By continuing to use the site, you agree to the use of cookies.