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 = '[email protected]'; $mail->Password = 'passwordmu'; $mail->SMTPSecure = 'tls'; $mail->Port = 587; $mail->setFrom('[email protected]', 'Codingan'); $mail->addReplyTo('[email protected]', 'Codingan'); // Menambahkan penerima $mail->addAddress('[email protected]'); // Menambahkan cc atau bcc $mail->addCC('[email protected]'); $mail->addBCC('[email protected]'); // 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('[email protected]'); $mail->addAddress('[email protected]');
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.
- Scroll ke bawah lagi ke bagian Aplikasi & situs yang terhubung dan aktifkan 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 = '[email protected]'; $mail->Password = 'passwordmu'; $mail->SMTPSecure = 'tls'; $mail->Port = 587;
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;
Ganti bagian ini gan:
username diisi alamat email yahoo.
// Konfigurasi SMTP
$mail->isSMTP();
$mail->Host = ‘smtp.gmail.com’;
$mail->SMTPAuth = true;
$mail->Username = ‘[email protected]’;
$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
settingan diatas seharusnya sudah benar gan,
btw, agan sudah menonaktifkan ijin aplikasi kurang aman di settingan akun Google?
dan verifikasi 2 langkah juga harus dinonaktifkan.
iya sekarang aneh gan, udah di nonaktifkan ijin aplikasi kurang aman masih tetep gak bisa gan.. kenapa ya?
saya menambahkan code ini dan berhasil gan.
$mail->SMTPOptions = array(
‘ssl’ => array(
‘verify_peer’ => false,
‘verify_peer_name’ => false,
‘allow_self_signed’ => true
)
);
tp muncul masalah baru. kadang2 PHPMailer mengirim email duplicate gan. itu masalahnya kenapa ya gan? terima kasih
boleh tau itu scriptnya di taruh dimana
Pesan tidak dapat dikirim.Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
gimana solusinya gan?
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
tanya masbro… baru ngeh
cari ngilangin pengirim Codingan gimana ya 🙂
Ganti bagian ini gan:
$mail->setFrom('[email protected]', 'Codingan');
$mail->addReplyTo('[email protected]', 'Codingan');
itu harus di upload di hosting atau bisa di jalankan pakai xampp?
Di hosting gan, kalau mau dari XAMPP silahkah intip tutorial ini
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
Tambahkan coding
$mail->SMTPDebug = 0;
gan kalo lampirannya di komentari atau di matikan apakah tetap jalan?
tetep bisa jalan gan
berhasil gan terimakasih
gan email pengirimnya bisakah di ganti dengan email web mail gan?
Bntu jawab. Bisa tuh bro
gan, bisa di modif untuk kirim email otomatis nggk, misal sebelum jatuh tempo maka kirim email ke cust otomatis.
Boleh japri gan.
Pesan tidak dapat dikirim.Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
mohon solusinya
Sekian lama w cari2 tutorial sendmail dari Fanpage,Youtube, Blog, baru ini yang bener-bener work wkwkwkwkwkw, Thanks min..
Sekarang mau bikin via isi form dulu gmn caranya min? wkwkkw
min saya coba tambah addAttachment kok gak muncul ya min?
Mantep bet dah…
ijin bertanya bagaimana kalau smtp dari outlook ya kak , karena saya coba dengan settingan ini selalu error
$mail->IsSMTP();
$mail->Host = “outlook.office365.com”;
$mail->SMTPAuth = true;
$mail->Username = “username”;
$mail->Password = “password”;
$mail->SMTPSecure = “tls”;
$mail->Port = “587”;
$mail->IsHTML(true);