Cara kirim email dengan PHP

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

Penulis: Candra Adi Putra

Berlokasi di Yogyakarta, Indonesia, CandraLab Studio Fokus pada pembuatan Aplikasi Mobile (Android) dan Web . Hubungi saya di candraadiputra(at) gmail (dot) com

  • dasda

    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?

  • Dana

    yuhuuu… makasih gan ilmunya, semoga manfaat dunia akhirat

  • Anonymous

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

  • http://gravatar.com/mafulprayoga mafulprayoga

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

    • http://www.candra.web.id Candra Adi Putra

      pake paket pear php , baca lagi artikelnya

  • Edwin

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

  • http://blog-aplikasianda.blogspot.com Adisis

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

  • http://www.lazpupukkaltim.org lutfi

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

  • Anonymous

    Hanun bos…

  • Anonymous

    arigatou gozaimash sensei , really helpfull

  • Anonymous

    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

  • http://sidikidis.wordpress.com sidikidis

    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

    • http://www.candra.web.id Candra Adi Putra

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

  • Dean

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

  • http://furnitureforapartment.com Furniture for Apartment Seeker

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

  • http://susilogn.com Susilo Giono

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

  • http://www.ryanprastyon.com Ibeyz

    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

    • http://www.candra.web.id Candra Adi Putra

      kamu masuk dulu lewat comand line ke xampp\php\

  • angga

    berhasil gan , tq

  • hasan

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

  • tumel

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

  • Era Tea

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

  • syahrani

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

  • http://gravatar.com/fahmialy fahmihmi

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

  • kopipaste

    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

      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

  • siti melina

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

  • http://gravatar.com/irpanajax irpan

    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

  • http://gravatar.com/codexadit codexadit

    bang kalo pake apache2triad gimana ya bang ?

    • Candra Adi Putra

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

    • http://gravatar.com/codexadit codexadit

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

  • http://www.facebook.com/sandy.s.hutagalung Sandy Setiawan Hutagalung

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

    • Candra Adi Putra

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

  • Yoga

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

    • Candra Adi Putra

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

  • http://www.aakoa.com AaKoa

    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

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

  • Endan Hamdani

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

  • http://gravatar.com/ahusjalaludin ahus

    Terimaksih bang, artikelnya sangat membantu…

Post Navigation