Rumahweb Journal
Banner - Laravel Email SMTP Script Menggunakan Library PHPMailer

Laravel Email SMTP Script Menggunakan Library PHPMailer

Pada panduan ini, kami akan membahas tentang Laravel Email SMTP script menggunakan Library PHPMailer. Cara ini dapat anda ikuti, untuk melakukan pengiriman email dari website Laravel yang telah anda buat.

Salah satu cara agar email yang dikirimkan dari website dapat diterima dengan baik, dan tidak ditandai sebagai spam adalah dengan melakukan setting autentifikasi SMTP. Karenanya penting untuk anda ketahui, tentang cara setting SMTP ini pada website. Di pembahasan kali ini, kami menggunakan metode library SMTP PHPMailer dengan script yang telah kami siapkan.

Script Laravel Email SMTP PHPMailer

Untuk memudahkan anda dalam mengikuti panduan kami, silahkan download file library yang telah kami sediakan melalui link berikut: download script phpmailer laravel

Repository github tersebut merupakan template penggunaan library SMTP PHPMailer. Anda bebas melakukan fork atau clone, serta melakukan modifikasi sesuai kebutuhan anda.

Selanjutnya, silahkan cek script app/Http/Controllers/MailerController.php yang detail script-nya seperti dibawah ini :

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

class MailerController 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 = 'namadomain.com';             //  smtp host
            $mail->SMTPAuth = true;
            $mail->Username = '[email protected]';   //  sender username
            $mail->Password = 'XXXXXXXXX';       // sender password
            $mail->SMTPSecure = 'ssl';                  // encryption - ssl/tls
            $mail->Port = 465;                          // port - 587/465

            $mail->setFrom('[email protected]', 'SMTP LARAVEL');
            $mail->addAddress($request->emailRecipient);
            $mail->addCC($request->emailCc);
            $mail->addBCC($request->emailBcc);

            $mail->addReplyTo('[email protected]', '');

            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 sesuai dengan kebutuhan. Selain itu, Anda bisa melakukan perubahan pada host, username dan password email yang akan Anda gunakan. Berikut opsinya:

Mengunakan Email Domain

Apabila menggunakan email domain, Anda bisa mengisi script smtp Laravel tersebut dengan data berikut :

  • smtp host = mail.namadomain_anda / nama domain anda
  • sender username = alamat email domain yang Anda gunakan
  • password = password emailnya

Menggunakan Email Gmail

Jika menggunakan email gmail atau Google WorkSpace, maka Anda bisa mengisi script SMTP Laravel tersebut dengan data berikut:

  • Host = smtp.gmail.com
  • username = alamat email gmail atau google Workspace Anda
  • password = isi dengan password application.

Panduan generate password application pada gmail bisa Anda baca melalui link berikut : Password Application gmail

Testing Laravel email SMTP

Setelah anda membuat laravel email SMTP sesuai panduan diatas, Anda dapat melakukan test pengiriman email melalui link atau URL http://namadomain/email. Lalu akan muncul halaman view berikut:

Testing Laravel email SMTP

Jika setting atau configurasi file SMTP Anda benar, maka email akan terkirim ke alamat email tujuan dan hasil pengiriman email SMTP laravel diatas seperti berikut:

Hasil Laravel email SMTP pada email client

Demikian panduan setting Laravel Email SMTP script dari Rumahweb, semoga bermanfaat.

Bermanfaatkah Artikel Ini?

Klik bintang 5 untuk rating!

Rating rata-rata 5 / 5. Vote count: 2

Belum ada vote hingga saat ini!

Kami mohon maaf artikel ini kurang berguna untuk Anda!

Mari kita perbaiki artikel ini!

Beri tahu kami bagaimana kami dapat meningkatkan artikel ini?

Jasa Pembuatan Website Rumahweb

Benny Eko Priharyanto