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_yang_dituju@domain.com";
//ganti dengan emailmu /email resmi website
	$from = "emailmu_di_gmail@gmail.com";
	$host = "ssl://smtp.gmail.com";
	$port = "465";
	//emailmu untuk login k gmail 
	$username = "emailmu@gmail.com";
	
	//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!.

Categories: PHP

Candra Adi Putra

Candra Adi Putra S.Kom adalah Alumni STMIK AKAKOM Yogyakarta. hubungi saya di candraadiputra (at) gmail (dot) com

47 Comments

jati · 23 March , 2017 at 4:27 am

Pa candra.. Kalau cara setting emailnya itu bukan dilocalhost.. Webnya itu sudah di hosting bagaimana yah pak

azhar · 3 October , 2016 at 2:53 pm

mkasiiii min work 100%

Handy Mukhlis Suhendy · 30 August , 2016 at 8:32 pm

ketinggalan satu mas install nya

pear install Net_SMTP

bambang ariyanto · 6 May , 2016 at 6:04 pm

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

    Azka Reviriawan · 23 August , 2016 at 11:27 pm

    saya udah gaada error, cuman pas klik kirim .. ga kekirim emailnya.. itu knpa ya ?

dasda · 22 July , 2015 at 10:14 am

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?

    Aji Kurniawan · 13 September , 2015 at 1:09 pm

    sudah ketemu permasalahannya gan?, soalnya dapat error yang sama , terimakasih

    dedee · 9 June , 2017 at 3:56 pm

    centang authentication nya

Dana · 26 June , 2015 at 8:20 pm

yuhuuu… makasih gan ilmunya, semoga manfaat dunia akhirat

Anonymous · 13 February , 2015 at 8:17 am

makasih mas infonya, klo emailnya dikasih signature logo bisa nggak ya?

mafulprayoga · 8 November , 2014 at 8:40 am

require_once “Mail.php”;
ambil dari mana
bisa dijelaskan

    Candra Adi Putra · 22 November , 2014 at 11:21 am

    pake paket pear php , baca lagi artikelnya

Edwin · 25 August , 2014 at 9:25 am

Keren ah tutorialnya….Berhasil sama ane gan…thx ya tutorialnya…

Adisis · 25 July , 2014 at 7:50 am

require_one(‘mail.php’) itu diambil dari mana gan?

lutfi · 8 July , 2014 at 8:03 pm

Sip , thanks berat gan … nah 1 mau tanya 1 lagi bang .. kalo isi body nya kita mau buat html gmana ??

Anonymous · 30 June , 2014 at 1:37 pm

Hanun bos…

Anonymous · 22 June , 2014 at 6:32 pm

arigatou gozaimash sensei , really helpfull

Anonymous · 18 June , 2014 at 9:57 pm

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

sidikidis · 18 June , 2014 at 2:57 pm

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

    Candra Adi Putra · 23 June , 2014 at 9:53 pm

    klo saya menjelaskan seperti itu,jadi tutorial command line dong? :). sebaiknya yang baru belajar php cari tutorial terpisah tentang command prompt terlebih dahulu

Dean · 13 May , 2014 at 10:46 am

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 :)

Furniture for Apartment Seeker · 14 April , 2014 at 11:12 am

kira2 apa perlu mengganti settingan smtp port di php.ini?

Susilo Giono · 31 March , 2014 at 9:11 am

Terima kasih pak Candra, tutorialnya sangat membantu saya sekali.
semoga ilmunya berkah amiin :)

Ibeyz · 30 January , 2014 at 1:00 am

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

    Candra Adi Putra · 30 January , 2014 at 10:56 am

    kamu masuk dulu lewat comand line ke xampp\php\

angga · 13 January , 2014 at 2:17 pm

berhasil gan , tq

hasan · 30 December , 2013 at 3:28 pm

mas,kira2 website aku salah apanya ya, kok gak bisa kirim email…

tumel · 4 December , 2013 at 1:41 am

postingannya keren, cukup memuaskan..
thank’s mas CAP

Era Tea · 3 December , 2013 at 5:20 pm

Oi… Terima Kasih artikel nya, berhasil dengan beberapa perubahan sedikit :)

syahrani · 21 November , 2013 at 8:31 am

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,,??

fahmihmi · 3 August , 2013 at 10:20 am

terimakasih bang artikelnya bagus sekali, dan membantu pekerjaan saya.
saya ingin menanyakan kalau menggunakan attachment file bagaimana ya??caranya, terimakasih

kopipaste · 28 July , 2013 at 3:30 am

kayaknya kopidarat nih,,
scriptnya ngga jelas, baris pertama aja ngga tau apa yg di panggil.
kalo ngga ngerti script ngga usah di posting..

    Candra Adi Putra · 28 July , 2013 at 3:56 pm

    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

    hmmmm · 4 May , 2016 at 12:23 pm

    komen Anda bodoh,! Belajarlah baca artikel yang baik.

siti melina · 25 July , 2013 at 4:34 pm

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 :)

irpan · 16 July , 2013 at 12:58 pm

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 – irpan.ajax@gmail.com

codexadit · 9 June , 2013 at 7:40 pm

bang kalo pake apache2triad gimana ya bang ?

    Candra Adi Putra · 11 June , 2013 at 1:49 pm

    konsepnya sama…yang penting edit php.ini terus install ikuti panduan selanjutnya, jangan fokus ke merek (xampp/apache2triad) dll… fokus ke pahahamannya

    codexadit · 21 June , 2013 at 10:36 am

    masih belom bisa gan, emailnya gk sampai hiks
    musti xampp kayaknya

Sandy Setiawan Hutagalung · 8 May , 2013 at 9:25 pm

saya coba install pear install mail, lalu terjadi istall dailed no available packages… kenapa ya

    Candra Adi Putra · 8 May , 2013 at 11:45 pm

    pastikan koneksi internet lancar..kalo ga, bypass aja langkah ini.. langsung test aja kirim emailnya

Yoga · 30 April , 2013 at 11:58 pm

mas saya pas “pear install mail” ko eror yah??
ERROR: failed to mkdir C:\php\pear\tests\Mail\tests

    Candra Adi Putra · 3 May , 2013 at 8:44 pm

    buka command promptnya as administrator, kalau tetap ga mau, install xampp di drive D

AaKoa · 22 April , 2013 at 10:01 am

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..>???

    Candra Adi Putra · 29 April , 2013 at 2:44 pm

    hubungi pihak hosting…tanyaain wehostingnya dukung email ga? kalao iya apa yang perlu di seting agar bisa jalan. itu dwebhostingnya bro

Endan Hamdani · 17 April , 2013 at 12:05 pm

Bagus sekali artikel ya, kalo ada contoh program ya minta email donk ? butuh nih buat refereisi skripsi. thnks

ahus · 26 March , 2013 at 6:48 pm

Terimaksih bang, artikelnya sangat membantu…

Comments are closed.