Bismillah,
Kali ini Ibnu Climber akan sharing trik, agar Anda dapat mengirim email di PHP dengan menggunakan Gmail SMTP Server.
Kebutuhan :
- phpMailer
- Akun Gmail
- Aplikasi web server seperti Wamp, XAMPP (jika Anda ingin menggunakannya di localhost)
Langkah awal yang harus Anda lakukan adalah mendownload phpMailer melalui link yang saya kasih di atas. Catatan: Di sini saya menggunakan phpMailer versi 5.1.
Setelah Anda mendownload file yang berformat .zip itu, klik kanan pada file tersebut lalu pilih extract here (jika Anda menggunakan Winrar) atau dengan cara apapun yang penting file tersebut harus di extract.
Setelah di extract, rename/ganti nama folder hasil extract tersebut menjadi "phpMailer" supaya mudah diingat :D. Lalu pindahkan (sebaiknya copy saja) folder tersebut ke folder "htdocs" atau "public_html" atau "www" (tergantung Anda menggunakan aplikasi web server apa).
Bukalah folder phpMailer tersebut, dan seharusnya terdapat berbagai macam file dan folder di dalamnya. Yang harus Anda lakukan adalah cari file yang bernama "class.phpmailer.php" dan buka file tersebut menggunakan Notepad, atau kalo perlu buka dengan Macromedia Dreamweaver.
Kemudian cari (bisa menggunakan CTRL+F atau CTRL+H) kata "public $Host" dan "public $Port" seperti di bawah ini :
public $Host = 'localhost';
public $Port = 25;
Ubahlah menjadi
public $Host = 'ssl://smtp.gmail.com';
public $Port = 465;
Lalu tutup (dan save/simpan pastinya). Anda juga dapat merubahnya dengan host lain, cuman untuk kali ini tutorial ini hanya menggunakan SMTP Gmail. Jadi jika Anda ingin menggunakan host lain, tinggal cari sendiri aja alamat SMTP Servernya. :P.Selanjutnya, buatlah sebuah file .php dan simpan di folder "htdocs" atau "public_html" atau "www" (tergantung Anda menggunakan aplikasi web server apa).
Tuliskan kode di bawah ini pada file Anda, jangan lupa untuk merubah contoh di bawah ini dengan lokasi milik Anda.
include('../phpMailer/class.phpmailer.php');
Lalu buatlah sebuah objek dari class phpMailer, dan tentukan bahwa ia akan menggunakan SMTP.
$mail = new PHPMailer();
$mail->IsSMTP();
Juga tambahkan kode ini untuk meng-enable SMTP authentication. Untuk mengotentikasi bahwa Anda real humman dan bukanlah spammer bot, he he he.
$mail->SMTPAuth = true;
Lalu tambahkan kode berikut untuk menentukan alamat email mana yang akan Anda gunakan untuk mengirim email, untuk alamat email selain gmail aku sendiri belum pernah mencobanya.
$mail->Username = "username_gmail_ku@gmail.com"; $mail->Password = "password_gmail_ku";
Kode di bawah ini untuk menentukan ke alamat email mana penerima melakukan balasan/reply, sama dengan yang di atas juga gak papa kok.
$webmaster_email = "reply_email@gmail.com";
Kode di bawah ini untuk menentukan alamat email penerima, ini bisa ke selain gmail seperti yahoo, hotmail dan lain-lain.
$email="penerima@gmail.com";
Lalu tentukan nama penerima email yang akan dikirim bersamaan alamat email penerima, yang akan dilihat oleh penerima beserta nama pengirimnya.
$name = "Mas Luqman"; $mail->From = $webmaster_email;
Anda juga dapat menambahkan nama pengirim setelahnya.
$mail->FromName = "Ibnu Climber";
Lalu kita panggil phpMailer function yang menggunakan variable yang telah kita buat sebagai argument.
$mail->AddAddress($email,$name);
Lalu tambahkan function yang lain untuk menambahkan informasi email balasan/reply to.
$mail->AddReplyTo($webmaster_email, $mail->FromName);
Anda juga dapat mengatur atribut word wrap ke berapapun yang Anda mau. Dengan Word Wrap Anda dapat membuat isi email menjadi lebih cantik. Jika Anda mengaturnya ke 50 maka ia akan membuat baris baru di setiap 50 karakter.
$mail->WordWrap = 50;
Untuk menyisipkan attachment, Panggil function addAttachment.
$mail->AddAttachment("file.jpg");
Kode ini untuk menentukan bahwa isi email adalah HTML.
$mail->IsHTML(true);
Tambahkan subjek dan isi/body email.
$mail->Subject = "Percobaan";
$mail->Body = "Ini adalah percobaan mengirim email dengan PHP.
Anda dapat memasukan tag HTML di sini";
Anda juga dapat menambahkan isi alternatif/alternatif body jika Anda mau. Alternatif body akan ditampilkan jika penerima menampilkannya dalam plain text.
$mail->AltBody = "Ini adalah percobaan mengirim email dengan PHP";
Terakhir, tambahkan kode berikut untuk mengecek emailnya terkirim atau tidak.
if(!$mail->Send())
{
echo "Gagal mengirim email: " . $mail->ErrorInfo;
}
else
{
echo "Email terkirim";
}
Jika Anda menggunakan localhost, pastikan php_openssl di enable.
Pengalaman saya, authentication gagal ketika menggunakan verifikasi 2 langkah di akun gmailnya. Solusinya, nonaktifkan verifikasi 2 langkah tersebut.
Sekian,
Semoga bermanfaat.
gan ane ngikutin langkah diatas satu persatu.. timbul error gini
ReplyDeleteSMTP Error: Could not connect to SMTP host.
Gagal :SMTP Error: Could not connect to SMTP host.
mohon pencerahan.. :)
verifikasi 2 langkahnya sudah di nonaktifkan apa belum bos ?
ReplyDeletemas saya coba gak bisa,, keterangannya gini..
ReplyDeleteSMTP Error: Could not connect to SMTP host. Gagal mengirim email: SMTP Error: Could not connect to SMTP host.
verifikasi 2 langkah sudah di non aktifkan apa belum bos ?
ReplyDeleteSMTP Error: Could not connect to SMTP host. Gagal mengirim email: SMTP Error: Could not connect to SMTP host.
ReplyDeletegan aku udah coba skrip yang diatas, ternyata aku dapet error berupa "SMTP connect() failed."
ReplyDeletesudah ane coba di local sama di hosting, tp hasilnya sama aja.
solusinya apa gan ?
hebat! 2 minggu bergerilya kesana kemari inilah jawabannya up up up up up up!!!!!
ReplyDeletemakasih
pokoke makasih