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
2) Klik Signing in to Google > klik ‘2-Step Verification’
3) Klik Update Now > Turn off
2) DisplayUnlockCaptcha
– klik https://accounts.google.com/displayunlockcaptcha
– klik continue
3) Turn on ‘Less Secure Apps’
– Klik https://www.google.com/settings/security/lesssecureapps
– Klik Turn on
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.
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.
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
Ane nambahin gan, di windows 10 worked
weh mantap gan :thumbup
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.
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.
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.
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.
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]
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
jadimax_execution_time = 3000
> restart apachemau 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…
ngga punya,
yg pasti pake cronjob itu .. http://stackoverflow.com/questions/24035090/run-cron-job-on-php-script-on-localhost-in-windows
mas kalo di taro dihosting bisa gak ?
bs mas, tp server hostingnya mesti windows.
keren bro bisa, thank tutorialnya sangat membantu sekali
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
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
mas misal message nya tipe file gambar gt gmana
tinggal ubah :
$message = ‘Halo pesan ini saya kirimkan dari localhost’;
jadi
$message = ‘<img src=”url.jpg”/>’;
Mas..top markotop deh.. o iya bisa nggak sekalian kirim attach file nya
Mantap. bisa terkirim.