Mengirim email dari localhost/server online menggunakan PHP

17
Mengirim email dari localhost menggunakan PHP

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.

BAGIKAN
Subscribe
Beritahu
guest

17 Comments
terlama
terbaru vote teratas
Inline Feedbacks
View all comments
Bariq
Bariq
Oktober 26, 2017 13:41

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

dwi
dwi
Januari 31, 2018 16:20

ada pesan errror….SMTP Error: Could not authenticate.
kenapa mas?

edwin
edwin
Februari 27, 2018 09:21

SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting , kenapa ya gan ?

mirza
April 19, 2018 13:21
Reply to  edwin

saya juga terkena eror begitu

fsx
fsx
Maret 16, 2018 17:37

kebanyakan notifikasinya trouble SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting, kenapa ya gan , saya sudah coba dengan mengganti akun gmail

Fajar
Fajar
Maret 31, 2018 16:27

joss. work

Dimitria
Dimitria
Juli 9, 2018 23:58

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

NagaLogia
Juli 11, 2018 15:17

Timbul masalah baru, udah terkirim tapi email enggak masuk. :v

nugsan
nugsan
Agustus 5, 2018 11:38

thanks gan, work ini

Riska
Riska
September 9, 2018 20:39

Sorry fina, it seems that my mail server is not responding. Please try again later!
kalau ada eror kyk gini gimana ya kak ?

dwirama
dwirama
Mei 31, 2019 13:41

MANTAP…sukses selalu

ARPOS
Oktober 9, 2019 11:37

IJIN SHARE DAN BELAJAR GAN

mr.x
mr.x
Oktober 23, 2019 16:13

Om, mau nanya kalo hasilnya begini kenapa ya?
SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

indra
indra
November 26, 2019 22:16

gan saya udah tes tapi error kek gini
“Extension missing: openssl”
gimana solusinya gan, mkasih