
Ada kalanya dalam fitur web kita perlu melakukan kirim email. Namun fitur mail() bawaan php seringkali tidak terkirim seharusnya karena adanya setting atau konfigurasi server email penerima yang berbeda-beda menyebabkan email sering spam atau bahkan tidak diterima. Oleh karena itu lebih baik menggunakan konfigurasi SMTP server, dan untuk lebih mudah kita coba menggunakan SMTP server milik gmail.
Setup
Laravel memiliki dua file berbeda untuk mengkonfigurasi email yaitu config/mail.php atau file .env. Kita hanya perlu konfigurasi di salah satunya saja. Untuk ini kita coba setting di file .env.
Lalu lihat bagian :
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
edit menjadi seperti ini :
MAIL_HOST=smtp.googlemail.com
MAIL_PORT=465
MAIL_USERNAME=ENTER_YOUR_GMAIL_USERNAME
MAIL_PASSWORD=ENTER_YOUR_GMAIL_PASSWORD
MAIL_ENCRYPTION=ssl
Disitu kita set mail menggunakan smtp gmail dan smtp port gmail 465 dan enkripsi ssl.
Jika sudah, kita juga perlu mengubah setting pada gmail. Login menggunakan akun google lalu klik my account. Lalu akan menampilkan seperti ini :
lalu klik Sign-in & Security
Pada halaman tersebut scroll ke bawah untuk mengaktifkan “Allow Less secure apps”
Kirim email di laravel
setelah melakukan setup diatas, disisi laravel coding yang perlu dilakukan :
$data = array(‘name’=>”Sam Jose”, “body” => “Test mail”);
$message->to('siapa@gmail.com', 'alfach.com')
->subject('Test email dari laravel');
$message->from('fachrie@gmail.com','Achmad Fachrie');
});
pada code diatas kita menggunakan template email di resources/views/emails/email.blade.php yang yang diisi dengan template sederhana :
{{ $body }}
mau tanya, kenapa ya atirbut from selalu diisi alamat email dari .env, padahal di aplikasi sudah saya sebutkan from nya dari alamat email yg lain. terima kasih