Langsung saja, kadang website yang kita bangun membutuhkan fungsi untuk mengirim email. Misalkan email untuk memverifikasi pendaftaran, lost password, atau mengirim artikel terbaru ke user. PHP mempunyai fungsi mengirim email mail()
. Sayannya, fungsi ini tidak bisa bejalan di Windows meningat windows tidak punya mail server.
Untuk mengatasi cara diatas, anda bisa menginstall mail server lokal seperti Argosoft mail server atau meletakannya di webhosting. Kedua cara tersebut cukup ribet. Saya akan mengajarkan cara sederhana mengirim email dengan memanfaatkan Server Gmail dan akun yang kita punya disana. Kelebihan teknik ini lebih sederhana, email yang kita kirim akan masuk INBOX, bukan masuk folder spam.
Pada praktik ini saya asumsikan anda memakai Windows dengan Server XAMPP. Saya sendiri memakai XAMPP 1.7.4. Ada dua langkah utama yaitu seting XAMPP agar bisa mengirim email dan membuat script kirim email itu sendiri.
Seting XAMPP
Seting XAMPP terbagi menjadi dua yaitu menginstall paket mail.php
dari pear.net.php
dan menambahkan support SSL ke php.ini
.
Install paket mail.php
Buka command prompt dan pastikan anda didrektori C:\XAMPP\php
,jalankan perintah berikut
pear channel-update pear.php.net pear install mail
Menambahkan support SSL ke PHP
Buka file php.ini XAMPP\php\php.ini
pada bagian Windows Extentions (sekitar baris 950), tambahkan kode
extension=php_openssl.dll
Setelah itu restart Apache web server lalu buka http://localhost
, Klik menu phpinfo()
.
pastikan pada bagian Registered Stream Socket Transports ada tambahan dukungan SSL seperti ini
tcp, udp, ssl, sslv3, sslv2, tls
Buat skript Kirim email
Script untuk kirim emailnya adalah sebagai berikut :
require_once "Mail.php"; $subject = "Test mail PHP"; $body = "Test email dengan PHP dan GMAIL !!!"; //mail($to, $subject, $body,$headers); //ganti baris ini dengan email yang dituju $to = "[email protected]"; //ganti dengan emailmu /email resmi website $from = "[email protected]"; $host = "ssl://smtp.gmail.com"; $port = "465"; //emailmu untuk login k gmail $username = "[email protected]"; //passwordmu waktu login gmail $password = "passwordmu"; $headers = array('From' => $from, 'To' => $to, 'Subject' => $subject); $smtp = Mail::factory('smtp', array('host' => $host, 'port' => $port, 'auth' => true, 'username' => $username, 'password' => $password)); $mail = $smtp -> send($to, $headers, $body); if (PEAR::isError($mail)) { echo("<p> Email Gagal dikirim" . $mail -> getMessage() . "</p>"); }else{ echo "Email berhasil di kirim "; }
What next?
contoh diatas hanyalah script sederhana untuk mengirim email. Anda bisa mengintegrasikan dengan script untuk mereset password, untuk memverifikasi email saat pendaftaran user, notifikasi pada ecommerce dan sebagainya, semua tinggal disesuaikan denan kebutuhan web yang sedang anda buat. Selamat mencoba!.
Pa candra.. Kalau cara setting emailnya itu bukan dilocalhost.. Webnya itu sudah di hosting bagaimana yah pak
mkasiiii min work 100%
ketinggalan satu mas install nya
pear install Net_SMTP
Mantap gan. Berhasil sm ane… Awalnya error kesalahan password katanya, ternyata password yg di gmail beda dgn password utk email di web ini, https://support.google.com/mail/answer/78754
saya udah gaada error, cuman pas klik kirim .. ga kekirim emailnya.. itu knpa ya ?
muncul pesan spt ini :
authentication failure [SMTP: Invalid response code received from server (code: 534, response: 5.7.14 Please log in via your web browser and
5.7.14 then try again.
5.7.14 Learn more at
5.7.14 https://support.google.com/mail/answer/78754 k5sm105942pda.34 – gsmtp)]
kenapa?
sudah ketemu permasalahannya gan?, soalnya dapat error yang sama , terimakasih
centang authentication nya
yuhuuu… makasih gan ilmunya, semoga manfaat dunia akhirat
makasih mas infonya, klo emailnya dikasih signature logo bisa nggak ya?
require_once “Mail.php”;
ambil dari mana
bisa dijelaskan
pake paket pear php , baca lagi artikelnya
Keren ah tutorialnya….Berhasil sama ane gan…thx ya tutorialnya…
require_one(‘mail.php’) itu diambil dari mana gan?
Sip , thanks berat gan … nah 1 mau tanya 1 lagi bang .. kalo isi body nya kita mau buat html gmana ??
Hanun bos…
arigatou gozaimash sensei , really helpfull
mas mau tanya, saya udah coba install , tapi dia error
Fatal error: Class ‘Mail’ not found in C:\xampp\htdocs\Mail.php on line 20
line 20 : $smtp = Mail::factory(‘smtp’, array(‘host’ => $host,
‘port’ => $port, ‘auth’ => true,
‘username’ => $username, ‘password’ => $password));
mohon pencerahannya mas
Bang mungkin perlu tambahin penjelasannya untuk masuk ke C:\XAMPP\php d command prompt nya
Pertama buka command prompt, terus ketik C:
Kedua ketik “cd XAMPP\php”
Itu aja sih bang yang pasti bikin para newbie kebingungan
klo saya menjelaskan seperti itu,jadi tutorial command line dong? :). sebaiknya yang baru belajar php cari tutorial terpisah tentang command prompt terlebih dahulu
Alhamdulillah bisa juga ngirim email lewat php, makasi banyak mas :3. Ada yang mau saya tanyakan, smtp google itu khusus untuk pengguna gmail aja ? atau bisa dipake buat email selain gmail (ex : yahoo, hotmail, dll), makasi banyak mas sekali lagi :)
kira2 apa perlu mengganti settingan smtp port di php.ini?
Terima kasih pak Candra, tutorialnya sangat membantu saya sekali.
semoga ilmunya berkah amiin :)
gan kenapa ya yang ane error ” ‘pear’ is not recognized as an internal or external command, operable program or batch file.” pas instal paket mail.php ??
mohon pencerahannya gan soalnya buat skripsi ni??
Thanks gan
kamu masuk dulu lewat comand line ke xampp\php\
berhasil gan , tq
mas,kira2 website aku salah apanya ya, kok gak bisa kirim email…
postingannya keren, cukup memuaskan..
thank’s mas CAP
Oi… Terima Kasih artikel nya, berhasil dengan beberapa perubahan sedikit :)
saya udah coba tapi hasilnya kaya gini
Fatal error: Class ‘Mail’ not found in /home/a3092576/public_html/email.php on line 25
baris 25 -> $smtp = Mail::factory(‘smtp’, array(‘host’ => $host,’port’ => $port, ‘auth’ => true, ‘username’ => $username, ‘password’ => $password));
apa yang salah ya,,??
terimakasih bang artikelnya bagus sekali, dan membantu pekerjaan saya.
saya ingin menanyakan kalau menggunakan attachment file bagaimana ya??caranya, terimakasih
kayaknya kopidarat nih,,
scriptnya ngga jelas, baris pertama aja ngga tau apa yg di panggil.
kalo ngga ngerti script ngga usah di posting..
1. kopi paste? boleh tau referensinya mana kalo kopi paste mas, itu script sudah ditest berkali kali dan dibuat sendiri
2. coba baca artikelnya secara utuh, mungkin ente aja kali asal kopas code dari web saya terus ga jalan, terus komentar kalo artikelnya kopas
3. include “Mail.php” bukan berbarti file Mail.php ada di folder yang sama dengan script yang kita buat. Mail.php adalah package yang kita install lewat perintah pear (baca tutorialnay secara lengkap masbro).
4. dan buat yang si komentator ini dan yang lain, saya kasih analogi ya. Jika kamu baru belajar naik motor, terus jatuh atau nabrak, jangan bilang kalau motornya yang ga beres/motornya rusak, itu artinya ENTE itu harus banyak belajar lagi….
5. kalau mau nuduh ini artikel dan kode kopas, saya minta referensi buktinya, semua orang mah bisa aja nuduh…buktinya please!
6. biasanya model komentator gini ga sabar baca artikel, asal kopas code, kode ga jalan, terus bilang kalo artikelnya kopas..duh ane sebenarnya kasian banget ma ente..baru belajar php gini aja dah ga bisa… mungkin ente ga bakat jadi programmer mas bro
komen Anda bodoh,! Belajarlah baca artikel yang baik.
Mas.. gini.. saya coba install “pear install mail” tp yang di balas
:No release available for package “pear.php.net/mail
kira” gimana solving problemnya yah mas?
mohon pencerahannya :)
mas, sorry tanya skript yang di include (“Mail.php”). itu file.phpnya bikin sendiri apa bawaan dari Mail di folder C:\\xampp/php/PEAR ..???
pencerahannya ya mas tq – [email protected]
bang kalo pake apache2triad gimana ya bang ?
konsepnya sama…yang penting edit php.ini terus install ikuti panduan selanjutnya, jangan fokus ke merek (xampp/apache2triad) dll… fokus ke pahahamannya
masih belom bisa gan, emailnya gk sampai hiks
musti xampp kayaknya
saya coba install pear install mail, lalu terjadi istall dailed no available packages… kenapa ya
pastikan koneksi internet lancar..kalo ga, bypass aja langkah ini.. langsung test aja kirim emailnya
mas saya pas “pear install mail” ko eror yah??
ERROR: failed to mkdir C:\php\pear\tests\Mail\tests
buka command promptnya as administrator, kalau tetap ga mau, install xampp di drive D
situs saya pake platform wordpress selfhosting, tapi klo ada orang yang ingin daftar ke situs saya, gak bisa mengirim email passwordnya. gimana ya cara mengatasinya..>???
hubungi pihak hosting…tanyaain wehostingnya dukung email ga? kalao iya apa yang perlu di seting agar bisa jalan. itu dwebhostingnya bro
Bagus sekali artikel ya, kalo ada contoh program ya minta email donk ? butuh nih buat refereisi skripsi. thnks
Terimaksih bang, artikelnya sangat membantu…