Cara Mudah Konfigurasi Send Mail Pada Laravel

1. Membuat Konfigurasi

Di sini untuk pertama buat konfigurasi mail yang sudah di sediakan pada .env . Contoh pada mailtrap

MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=user
MAIL_PASSWORD=xxx
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=from@example.com
MAIL_FROM_NAME="${APP_NAME}"

2. Membuat Mail Class

Pada langkah ini buat mail class untuk mengirim email.

php artisan make:mail ContactUsMail

Kemudian pada app\Mail\ContactUsMail.php ubah seperti ini.

<?php

namespace App\Mail;

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

class ContactUsMail 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('Masukan Subject')->view('mail.contact-us-mail');
    }
}

3. Membuat Blade View

Pada langkah ini untuk menulis email yang akan kita kirimkan.

Kemudian pada resources\views\mail\contact-us-mail.blade.php

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <h1></h1>
    <p></p>
    
    <p>Thank you</p>
</body>
</html>

4. Membuat Send Mail Controller

Pada langkah ini kita akan membuat perintah untuk mengirim email pada controller.

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class LandingController extends Controller
{
    public function sendContactUs(Request $request)
    {
        if ($request->isMethod('post')) {
            $this->validate(
                $request,
                [
                    'title' => 'required',
                    'body' => 'required',
                ]
            );
            
            $details = [
                'title' => $request->title,
                'body' => $request->body,
            ];
            
            $mail = \Mail::to('your_receiver_email@gmail.com')->send(new \App\Mail\ContactUsMail($details));
            
            return response('Email is Sent.', 200)->header('Content-Type', 'text/plain');
        }
    }
}

Catatan

Jika smpt kalian menggunakan selain mailtrap bisa ubah konfigurasi seperti ini.

DEVELMAIL

MAIL_HOST=smtp.develmail.com
MAIL_PORT=587
MAIL_ENCRYPTION=

SENDGRID

MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_ENCRYPTION=

Sekian untuk kali ini semoga bermanfaat :D untuk lebih lanjut bisa kunjungi link tersebut.