Setup pengiriman email di laravel 5.7

Di laravel 5.4 keatas, email dijadikan object untuk pengiriman.
Referensi https://laravel.com/docs/5.7/mail

Mari kita setup.

  1. pastikan bagian email di file .env telah terisi
MAIL_DRIVER=smtp
 MAIL_HOST=server.mail.com
 MAIL_PORT=465
 MAIL_USERNAME=user@mail.com
 MAIL_PASSWORD=1nipassw0rd
 MAIL_ENCRYPTION=ssl

2. Buat mailable
# php artisan make:mail EmailKu

setelah ini akan tergenerate class untuk email di folder App\Mail\Emailku

Edit class EmailKu.php
fungsi from() bisa ditambahkannya di class email

<?php

namespace App\Mail;

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

class NotificationUser extends Mailable
{
    use Queueable, SerializesModels;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public $notif;

    public function __construct($notif)
    {
        $this->notif = $notif;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {

        return $this->from('user@mail.com')
        ->subject("Email Review")
        ->view('mail.notification');
    }
}

3. Case saya ini tidak menggunakan routing, alias saat pendaftaran, langsung kirim email, jadi setelah funsi save() akan kirim email.
Di controller bisa buat seperti ini

    $notif = Order::findOrFail($orderId);
    Mail::to($order->user_email)->send(new EmailKu($notif));

4. Buat view email ini. contoh

Anda mendapatkan review baru!
Email anda {{ $notif->vendor_email }}

5. Tips, setelah mengedit .env jangan lupa :
#php artisan config:clear

sekian.

Leave a comment