30

Cara mengirim email dari localhost melalui xampp 2015

8

Banyak tutorial di internet yang membahas ‘cara kirim email lewat localhost dengan php’ baik itu dari website indonesia ataupun website luar. Saya coba satu per satu tutorialnya hanya beberapa yang bisa. Itupun bisanya gak disemua OS. Waktu itu saya coba di windows 7 ternyata berhasil kirim email dari localhost, tapi pas coba di windows 8 .. boro2 bisa, ke kirim emailnya juga kagak!. Hahaha.

Rata2 tutorial yang diinternet itu sama caranya tinggal setting sendmail.ini saja, tapi di tutorial ini kita pakai cara berbeda.

Saya sudah coba pakai cara ini, dan works di :
– windows xp
– windows 7
– windows 8.1
– windows 10 [kata pengkomentar]

Software yang saya gunakan ditutorial ini adalah :
a) Xampp-win32-5.6.11-1-VC11-installer
b) Windows 8.1
c) SendEmail

So, Berikut caranya :

I. KOFIGURASI EMAIL

Pertama kita harus konfigurasi email dulu. Ada 3 konfigurasi disini. Konfigurasi ini bertujuan untuk membuka akses gmail agar bisa diakses dari luar(localhost) :
(*note : konfigurasi ini harus dilakukan, WAJIB)

1) Nonaktifkan fitur ‘2-Step Verification’

Caranya sebagai berikut :
1) Klik My Account
my account gmail localhost
2) Klik Signing in to Google > klik ‘2-Step Verification’
mematikan fitur 2 step verification
3) Klik Update Now > Turn off
turn off 2 step verification gmail

2) DisplayUnlockCaptcha

– klik https://accounts.google.com/displayunlockcaptcha
– klik continue
unlock captcha gmail

3) Turn on ‘Less Secure Apps’

– Klik https://www.google.com/settings/security/lesssecureapps
– Klik Turn on
turn on less secure apps gmail

II. DOWNLOAD APLIKASI SENDMAIL

1) Download terlebih dahulu sendEmail

2) Lalu ektrak; klik kanan ‘extract to sendEmail-v156/’ > taruh folder sendEmail-v156 di dalam folder htdocs.
cara kirim email lewat localhost di windows 8

III. CARA KIRIM EMAIL DARI LOCALHOST

1) Buat sebuah file sendEmail-v156.php di dalam folder htdocs, lalu copy script berikut ini :

<?php
// send email using PERL
function email_localhost($to, $subject, $message, $sender, $password){
	$currentDir = getcwd();

	chdir('sendEmail-v156');
	$send_email = shell_exec('sendEmail.exe -f '.$sender.' -t '.$to.' -u '.escapeshellarg($subject).' -m '.escapeshellarg($message).' -s smtp.gmail.com:587 -xu '.$sender.' -xp '.escapeshellarg($password).' -o message-content-type=html message-charset=utf-8 tls=yes');
	chdir($currentDir);
	
	if($send_email){
		return true;
	}else{
		return false;
	}
}
?>

2) Sekarang saatnya test kirim email, buat file sendemail.php di dalam folder htdocs lalu copy script di bawah :

<?php
include "sendEmail-v156.php";

$to       = 'localhost.email@yahoo.co.id';
$subject  = 'PERL & PHP --- LOCALHOST';
$message  = 'Halo pesan ini saya kirimkan dari localhost';

// user dan password gmail
$sender   = 'onlyfortest17@gmail.com';
$password = 'Kabcd.123$$';

if(email_localhost($to, $subject, $message, $sender, $password))
    echo "Email sent";
else
    echo "Email sending failed";
?>

ganti $sender dan $password sesuai user password email Anda.
ganti juga $to dengan email tujuan. *NOTE : email pada line 9,10 diatas udah gak bisa, jadi ganti pakai email Anda ya.

Jika outputnya ‘Email sent’ berarti berhasil dikirim.
email send from windows 8

Cek di emailnya :
check inbox email
Detailnya :
email received

TUTORIAL VERSI VIDEO :

Ambar Hasbiyatmoko

Hello, I'm web developer. Passionate about programming, web server, and networking.

30 Comments

  1. di php.ini sy g ada open sslnya gan..gmana ya???
    isinya juga sedikit berbeda dengan yang di atas xamp milik saya versi 2.6

    • Tambahin aja sendiri gan extension=php_openssl.dll di php.ini.
      Pastiin juga di folder xampp\php\ext ada file php_openssl.dll

      Bedanya dimana? saya pake xampp versi terbaru 5.6.11

  2. nanya gan. jika web yang di localhostnya udah jadi dan di upload, otomatis kan server ganti, misal saya nyewa di penyedia hosting, nah apakah ada konfigurasi lagi atau tidak yah.,

    • server hostingnya mesti windows, bukan linux.
      Dan server windowsnya harus mengaktifkan fungsi PHP : shell_exec(”)

      Kalo semua itu sudah dilakukan, maka ngga perlu ubah konfigurasi lagi mas.

  3. nanya gan, ini saya sudah coba sesuai step-step. dan saya pakainya windows 7 tapi kok nggak berhasil… mohon bantuannya

    • saya coba barusan di windows 7 works kok ..
      pastikan kamu sudah mengkonfigurasi email seperti step diatas.

  4. bang ijin nanya nih, step by step cara di atas udah ane ikutin dan hasil berhasil tp ada problem error kayak gini itu gmn yah bang ?

    Warning: chdir(): No such file or directory (errno 2) in C:\xampp\htdocs\sendEmail-v156\sendEmail-v156.php on line 6
    Email sent

    • Kamu salah nempatin file sendEmail-v156.php, harusnya kamu taruh diluar folder ‘sendEmail-v156’.
      Jadi struktur penempatannya harus seperti ini :
      – sendEmail-v156 [folder]
      – sendemail.php [file]
      – sendEmail-v156.php [file]

      • semua step-stepnya sdh di ikuti, tpi masih belum berhasil.. apa di php.ini dan di sendmail-nya perlu di konfigurasi juga???

        sya pkainya xampp v.3.2.1

        • saya coba bisa kok, ngga perlu setting2 php.ini & sendemail.

          Mungkin kamu belum ngaktifin fungsi shell_exec milik php, makanya gak bisa jalan.

  5. hmm… iy, saya belum aktifkan… cara mengaktifkan fungsi shell_exec milik php itu dimana yaa??? ma’af soalnya baru

    • Secara default fungsi ‘shell_exec’ sebenernya udah diaktifkan pas nginstall xampp, tp kalo emg bener blum diaktifkan caranya ky gini :
      1) php.ini > cari disable_functions="shell_exec" ubah jadi > disable_functions= > restart apache

      *note : JANGAN PAKE contoh email onlyfortest17@gmail.com kaya diatas, coz passwordnya udah diganti sama orang ISENG.

  6. gan ane nyoba pakai xampp 1.8.2 dan dengan win 10 ada pesan

    Fatal error: Call to undefined function email_localhost() in D:\server\htdocs\sendmail.php on line 12

    • Udah buat file ‘sendEmail-v156.php’ belum? Kalo belum, buat dulu.. wajib.

      Pastikan juga struktur penempatannya seperti ini :
      – htdocs
          – sendEmail-v156 [folder]
          – sendemail.php [file]
          – sendEmail-v156.php [file]

  7. sebelumnya sdh berhasil eehh,… pas di coba lagi kok muncul pesan

    Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\sendEmail-v156.php on line 7

    • Koneksi internet+gmail juga berpengaruh ..

      By default, waktu eksekusi php maksimal cuma 30 detik. Kalo lebih dari itu ya muncul error kaya gitu.

      Solusinya, buka php.ini > ganti max_execution_time = 30 jadi max_execution_time = 3000 > restart apache

  8. mau nanya lagi, punya coding kirim email sebelum 5 menit nggak??
    contoh kasus : jam 07.50 sdh masuk ruangan jadi harus punya notifikasi kirim email 5 menit sebelum jam 07.50 sdh harus ada di email pengguna…

  9. mas, klo kita pakai email domain sendiri bisa ga? selain gmail gitu 🙂

    • wah belum pernah nyoba tuh..
      ntar deh saya coba ..

      #bagus juga tuh pertanyaanmu .. jd penasaran saya.. hhe

  10. iya mas bener tuh lw pake email domain yang pop3 misalnya itu gmn ada settingan yang mesti dirubah gak, bagi info kita donk thank’s

    • tinggal ubah :
      $message = ‘Halo pesan ini saya kirimkan dari localhost’;
      jadi
      $message = ‘<img src=”url.jpg”/>’;

  11. Mas..top markotop deh.. o iya bisa nggak sekalian kirim attach file nya

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload the CAPTCHA.