Di laravel 5.4 keatas, email dijadikan object untuk pengiriman.
Referensi https://laravel.com/docs/5.7/mail
Mari kita setup.
- pastikan bagian email di file .env telah terisi
MAIL_DRIVER=smtp
MAIL_HOST=server.mail.com
MAIL_PORT=465
[email protected]
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('[email protected]')
->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.