Jika sebelumnya anda telah mempelajari tentang apa itu SMTP, maka melalui artikel ini kita akan mempelajari tentang cara setting SMTP Laravel dengan menggunakan script PHPMailer.
SMTP di website berbasis Laravel berfungsi sebagai protokol pengirim email agar website Laravel anda dapat mengirimkan email ke alamat tujuan dan email yang masuk tidak ditandai sebagai spam. Contohnya seperti ada yang mengisi contact form, mengirim notifikasi terkait aktivitas di website, dan mengirim informasi login user yang mendaftar melalui registration form.
Disini, kami akan membagikan panduan untuk setting SMTP laravel menggunakan script PHPMailer, sehingga memudahkan anda dalam memulainya.
Script Email SMTP Laravel PHPMailer
Agar anda lebih mudah dalam melakukan setting, kami telah menyiapkan template script yang bisa download pada link berikut: download script phpmailer laravel.
Silahkan clone atau download repository template script phpmailer laravel tersebut dan sesuaikan dengan kebutuhan anda.
Jika sudah mendownload, anda dapat mengecek script app/Http/Controller/PHPMailerController.php yang isinya seperti berikut:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; class PHPMailerController extends Controller { // =============== [ Email ] =================== public function email() { return view("email"); } // ========== [ Compose Email ] ================ public function composeEmail(Request $request) { require base_path("vendor/autoload.php"); $mail = new PHPMailer(true); // Passing `true` enables exceptions try { // Email server settings $mail->SMTPDebug = 0; $mail->isSMTP(); $mail->Host = 'smtp.example.com'; // smtp host $mail->SMTPAuth = true; $mail->Username = 'user@example.com'; // sender username $mail->Password = '**********'; // sender password $mail->SMTPSecure = 'tls'; // encryption - ssl/tls $mail->Port = 587; // port - 587/465 $mail->setFrom('sender@example.com', 'SenderName'); $mail->addAddress($request->emailRecipient); $mail->addCC($request->emailCc); $mail->addBCC($request->emailBcc); $mail->addReplyTo('sender@example.com', 'SenderReplyName'); if (isset($_FILES['emailAttachments'])) { for ($i = 0; $i < count($_FILES['emailAttachments']['tmp_name']); $i++) { $mail->addAttachment($_FILES['emailAttachments']['tmp_name'][$i], $_FILES['emailAttachments']['name'][$i]); } } $mail->isHTML(true); // Set email content format to HTML $mail->Subject = $request->emailSubject; $mail->Body = $request->emailBody; // $mail->AltBody = plain text version of email body; if (!$mail->send()) { return back()->with("failed", "Email not sent.")->withErrors($mail->ErrorInfo); } else { return back()->with("success", "Email has been sent."); } } catch (Exception $e) { return back()->with('error', 'Message could not be sent.'); } } }
anda dapat menyesuaikan script tersebut dengan kebutuhan anda. Silahkan mengubah host, username dan password dengan data SMTP yang dimiliki oleh email anda, seperti contoh berikut:
Menggunakan Email Domain
Jika anda memiliki email domain, maka anda bisa mengisi script email SMTP Laravel dengan data berikut:
- SMTP Host = mail.namadomain.com (SMTP host email domain anda)
- Username = alamat@namadomain.com (alamat email sebagai pengirim pesan email)
- Password = password email anda
Menggunakan Email Gmail
Namun, jika anda ingin menggunakan protokol SMTP Gmail Google Workspace. Anda dapat mengisinya menggunakan data berikut:
- SMTP Host = smtp.gmail.com (SMTP host Gmail Google Workspace)
- Username = alamat@namadomain.com (alamat email sebagai pengirim pesan email)
- Password = password email anda
Pengujian Email SMTP Laravel
Setelah anda mengikuti panduan diatas, anda dapat melakukan tes untuk melakukan pengiriman email melalui url http://namadomain/email, lalu akan muncul tampilan halaman seperti berikut:
Perlu diingat, anda dapat melihat tampilan form pengiriman email dengan mengunjungi halaman /email pada environment anda.
Jika setting SMTP anda sudah benar, maka email akan terkirim ke alamat email tujuan.
Demikian panduan untuk melakukan setting Script SMTP Laravel menggunakan PHPMailer dari Qwords, selamat mencoba dan semoga bermanfaat!