Kirim Email via SMTP Server di PHP menggunakan PHPMailer

18
Kirim Email via SMTP Server di PHP menggunakan PHPMailer

Kirim email dari script adalah fitur yang sering digunakan untuk aplikasi web. Pada dasarnya, fungsi mail() dalam PHP digunakan untuk mengirim email dari script PHP. Saat kamu mengirim email menggunakan fungsi PHP mail(), email tersebut dikirim dari server web kamu. Kadang-kadang dapat menyebabkan masalah pada pengiriman email dan gagal untuk mengirim email ke penerima. Dengan SMTP kamu dapat mengatasi masalah ini, SMTP adalah cara yang paling direkomendasikan untuk mengirim email dari script PHP. Saat kamu mengirim email melalui SMTP, email dikirim dari server mail dan bukan dari web server.

Cara termudah untuk mengirim email di PHP dengan SMTP adalah dengan menggunakan library PHPMailer. PHPMailer memberikan kemampuan untuk mengirim email melalui server SMTP di PHP. Beragam pilihan konfigurasi library PHPMailer memungkinkan kita untuk mengirim email teks, email HTML, dan lampiran.

Mengirim email HTML

Gunakan isHTML(true) untuk mengatur format email ke HTML.

<?php
require 'PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer;

// Konfigurasi SMTP
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = 'emailmu@gmail.com';
$mail->Password = 'passwordmu';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;

$mail->setFrom('info@contoh.com', 'Codingan');
$mail->addReplyTo('info@contoh.com', 'Codingan');

// Menambahkan penerima
$mail->addAddress('penerima@contoh.com');

// Menambahkan cc atau bcc 
$mail->addCC('cc@contoh.com');
$mail->addBCC('bcc@contoh.com');

// Subjek email
$mail->Subject = 'Kirim Email via SMTP Server di PHP menggunakan PHPMailer';

// Mengatur format email ke HTML
$mail->isHTML(true);

// Konten/isi email
$mailContent = "<h1>Mengirim Email HTML menggunakan SMTP di PHP</h1>
    <p>Ini adalah email percobaan yang dikirim menggunakan email server SMTP dengan PHPMailer.</p>";
$mail->Body = $mailContent;

// Kirim email
if(!$mail->send()){
    echo 'Pesan tidak dapat dikirim.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
}else{
    echo 'Pesan telah terkirim';
}

Mengirim email dengan lampiran

Gunakan method addAttachment() dari class PHPMailer untuk menambahkan lampiran ke email. Kamu dapat menambahkan beberapa lampiran ke email dengan menambahkan method addAttachment() beberapa kali.

// Menambahakn lampiran
$mail->addAttachment('lmp/file1.pdf');
$mail->addAttachment('lmp/file2.png', 'nama-baru-file2.png'); //atur nama baru

Mengirim email ke beberapa penerima

Tambahkan method addAddress() beberapa kali untuk mengirimkan email yang sama ke beberapa penerima.

// Menambahkan beberapa penerima
$mail->addAddress('penerima2@contoh.com');
$mail->addAddress('penerima3@contoh.com');

Mengirim email menggunakan Gmail SMTP

Jika kamu ingin menggunakan Gmail SMTP untuk mengirim email, kamu harus membuat beberapa perubahan dalam pengaturan akun Google!. Ikuti langkah-langkah di bawah ini untuk menggunakan Gmail SMTP di library PHPMailer.

  • Login ke akun Google kamu.
  • Masuk ke halaman Akun Saya. Klik Login ke Google dari bagian Login & Keamananan.
  • Scroll ke bawah ke bagian Metode login & sandi dan matikan Verifikasi 2 Langkah.
  • Mematikan verifikasi 2 langkah
  • Scroll ke bawah lagi ke bagian Aplikasi & situs yang terhubung dan aktifkan Izinkan aplikasi yang kurang aman.
  • Izinkan aplikasi yang kurang aman

Ok, selesai! Sekarang kamu dapat menggunakan Gmail SMTP untuk mengirim email dari script PHP. Tentukan kredensial akun Gmail kamu (alamat email dan password), SMTP host dan port.

// Konfigurasi SMTP
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = 'emailmu@gmail.com';
$mail->Password = 'passwordmu';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;

BAGIKAN

18
Leave a Reply

avatar
400
11 Comment threads
7 Thread replies
4 Followers
 
Most reacted comment
Hottest comment thread
11 Comment authors
IhsanyogiFrendyariefYUDHA Recent comment authors
  Subscribe  
terbaru terlama vote teratas
Beritahu
miftah
Tamu

gimana cara setting yahoo di phpmailer?
apakah ada settingan lagi di yahoo nya
$mail->Host = “smtp.bizmail.yahoo.com”;
$mail->SMTPSecure = ‘ssl’;
$mail->Port = 465;
$mail->SMTPDebug = 2;

iqbal
Tamu
iqbal

// Konfigurasi SMTP
$mail->isSMTP();
$mail->Host = ‘smtp.gmail.com’;
$mail->SMTPAuth = true;
$mail->Username = ‘iqsarmy93@gmail.com’;
$mail->Password = Rahasia’;
$mail->SMTPSecure = ‘tls’;
$mail->Port = 587;

//Eror:
Pesan tidak dapat dikirim.Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

Anshar
Tamu
Anshar

Pesan tidak dapat dikirim.Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

gimana solusinya gan?

wesi
Tamu

mail() lebih sering gagal krn dianggap spam sampe2 servicenya diblock oleh hosting.

Ya.. terpaksa coba phpmailer.

mantap tutorialnya langsung jalan begitu di copy ke folder publichtml. padahal sudah seminggu saya cobain tutorial hosting saya selalu error.

Many thanks masbro

wesi
Tamu

tanya masbro… baru ngeh
cari ngilangin pengirim Codingan gimana ya 🙂

YUDHA
Tamu
YUDHA

itu harus di upload di hosting atau bisa di jalankan pakai xampp?

arief
Tamu
arief

kalo ngehidden pesan smtp setelah pesan berhasil dikirim gimana?
SMTP -> FROM SERVER:220 smtp.gmail.com ESMTP o88sm2955863pfk.91 – gsmtp
SMTP -> FROM SERVER: 250-smtp.gmail.com at your service, [61.94.133.59] 250- ……..
pencerahannya

yogi
Tamu
yogi

Tambahkan coding

$mail->SMTPDebug = 0;

Frendy
Tamu

gan kalo lampirannya di komentari atau di matikan apakah tetap jalan?

Frendy
Tamu

berhasil gan terimakasih

Frendy
Tamu

gan email pengirimnya bisakah di ganti dengan email web mail gan?

Ihsan
Tamu
Ihsan

gan, bisa di modif untuk kirim email otomatis nggk, misal sebelum jatuh tempo maka kirim email ke cust otomatis.

Boleh japri gan.