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

Author: Candra Adi Putra

Candra Adi Putra adalah Alumni STMIK AKAKOM Yogyakarta. CandraLab Studio Fokus pada pembuatan Aplikasi Mobile (Android) dan Website/WebApp . Like Candralab Studio Di Facebook. Hubungi saya di candraadiputra(at) gmail (dot) com, PIN BB: 5A720618 atau WA :081328533115

43 thoughts on “Cara kirim email dengan PHP”

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Tinggalin komentar dong!