Ketika kamu menguji aplikasi Web kamu di server localhost/online atau jika kamu menggunakan Sistem Operasi Windows sulit untuk mensetup mail server untuk mengirim email. Dengan library PHP yaitu PHPMailer kita dapat dengan mudah mengirim email dari localhost/server online menggunakan PHP.
Menggunakan PHPMailer untuk mengirim email dari localhost/server online
Library PHPMailer adalah library favorit pribadi saya untuk mengirim email dari localhost dan pada kenyataannya digunakan oleh diperkirakan 10 juta pengguna di seluruh dunia. Dengan menggunakan PHPMailer kita dapat mengirim email html, email teks, via smtp, gmail. Kamu juga dapat mengirim cc dan bcc ke beberapa penerima. Bahkan kita dapat men-download library PHPMailer dari Github dan Sourceforge. Silahkan lihat pada beberapa contoh di sini.
Mengkonfigurasi PHPMailer untuk mengirim email via SMTP
Saya mengasumsikan bahwa kamu sudah punya akun email Google (gmail), karena ini adalah cara termudah untuk mengirim email via smtp. Jika kamu sudah punya akun di outloook, atau layanan email lainnya itu bisa dilakukan juga. Ikuti langkah-langkah berikut untuk mengkonfigurasi library PHPMailer untuk mengirim email.
Langkah pertama adalah men-download file zip library PHPMailer dari situs PHPMailer/Github/Sourceforge. Setelah kamu men-downloadnya, extract ke folder project kamu direktori localhost / server online kamu.
Sertakan file PHPMailerAutoload.php
dalam file php kamu. Ini akan menjadi halaman yang akan digunakan untuk mengirim email.
<?php // menyertakan file PHPMailerAutoload require 'phpmailer/PHPMailerAutoload.php'; ?>
Menginstansiasi class phpmailer, yaitu membuat obyek dari class PHPMailer.
<?php // membuat obyek dari class PHPMailer $mail = new PHPMailer(true); ?>
Mengatur class untuk menggunakan metode SMTP.
<?php $mail->IsSMTP(); ?>
Jika kamu ingin melakukan debug kode atau mengecek output setelah mengirim email, gunakan opsi ini:
<?php // mengaktifkan informasi debug SMPT (untuk pengujian) // atur 0 untuk mode debugging // atur 1 untuk menampilkan hasil debug $mail->SMTPDebug = 0; ?>
Mengaktifkan otentikasi SMPT. Disarankan untuk menggunakannya.
<?php $mail->SMTPAuth = true; ?>
Mengatur mode pengiriman email, server smtp dan port. Sekali lagi Saya mengasumsikan bahwa kamu sudah menggunakan Gmail.
<?php // untuk Gmail $mail->SMTPSecure = 'ssl'; $mail->Host = 'smtp.gmail.com'; $mail->Port = 465; // untuk Outlook $mail->SMTPSecure = 'tls'; $mail->Host = 'smtp-mail.outlook.com'; $mail->Port = 587; //gunakan port 25 sebagai alternatif ?>
Berikan alamat email dan password. Juga mengatur alamat email pengirim dan namanya.
<?php $mail->Username = '[email protected]'; // harus dalam tanda kutip tunggal $mail->Password = 'passwordmu'; $mail->SetFrom('[email protected]', 'Nama Kamu'); ?>
Jika kamu ingin menambahkan satu atau beberapa penerima, tambahkan baris kode ini di bawah ini.
<?php $mail->AddAddress('[email protected]'); // hapus baris di bawah ini // jika kamu tidak ingin mengirim ke beberapa penerima $mail->AddAddress('[email protected]'); ?>
Kamu juga dapat mengirim Cc/Bcc ke penerima.
<?php $mail->AddCC('[email protected]'); $mail->AddBCC('[email protected]'); ?>
Tambahkan isi pesan. Kamu dapat menggunakan teks biasa atau template html yang telah diformat. Saya menggunakan template email HTML.
<?php // mengambil isi pesan dari file HTML yaitu pesan.html $message = file_get_contents('pesan.html'); // menambahkan isi pesan $mail->MsgHTML($message); ?>
Jika kamu ingin melampirkan file, tambahkan kode di bawah ini.
<?php // ganti time.png dengan file kamu $mail->AddAttachment('time.png'); ?>
Melakuakn cek pada konfigurasi dan mengirim email.
<?php try { // kirim email $mail->Send(); $msg = "Email berhasil dikirim"; } catch (phpmailerException $e) { $msg = $e->getMessage(); } catch (Exception $e) { $msg = $e->getMessage(); } ?>
Jika ada masalah tentang tutorial Mengirim email dari localhost/server online menggunakan PHP, jangan ragu untuk berkomentar gan.
gan, itu yg ‘emailmu’ dan ‘passwordmu’ mksd nya pas tujuan emailnya atau yg ngirim email?saya ingin buat form yg bisa kirim pesan trs dikirim ke email admin(email saya) soalnya. thanks gan
Email pengirim dan password email pengirim gan.
Email penerima ada di
$mail->AddAddress('[email protected]');
ada pesan errror….SMTP Error: Could not authenticate.
kenapa mas?
SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting , kenapa ya gan ?
saya juga terkena eror begitu
Pastikan PC kamu juga terhubung ke internet gan, Coba dibaris ini ganti seperti ini
$mail->Host = "ssl://smtp.gmail.com";
Dan kalo belum bisa, buka file
php.ini
lalu cari baris;extension=php_openssl.dll
hapus tanda titik koma “;“. Setelah itu save dan restart webserver kamu.kebanyakan notifikasinya trouble SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting, kenapa ya gan , saya sudah coba dengan mengganti akun gmail
joss. work
Gan, kalo isi pesan tidak muncul (kosong: cuma label “Isi Pesan:”), tapi nama pengirimnya, emailnya & lainnya bisa muncul. Kenapa ya? Sy ada di dua provider hosting yg sama (beda web) dgn file-file php yg sama juga… tapi yg satu bisa, yg lainnya ngga bisa… file dilokasi induk mail.php, sub dir (folder) classes: class.phpmailer.php dan class.smtp
Timbul masalah baru, udah terkirim tapi email enggak masuk. :v
thanks gan, work ini
Sorry fina, it seems that my mail server is not responding. Please try again later!
kalau ada eror kyk gini gimana ya kak ?
error server pada layanan email yg kamu gunakan
MANTAP…sukses selalu
IJIN SHARE DAN BELAJAR GAN
Om, mau nanya kalo hasilnya begini kenapa ya?
SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
gan saya udah tes tapi error kek gini
“Extension missing: openssl”
gimana solusinya gan, mkasih