48

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 :

[related_post themes="text" id="1326"]

Ambar Hasbiyatmoko

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

48 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

  12. mas, ini kan dari localhost > gmail

    lah kalau pas di “send” itu data-datanya masuk di sebuah file sendiri itu gimana mas???
    (di Contact From, kan ada button SEND, nah pas di SEND, data seperti nama, hp, email, pesan, itu masuk di sebuah file sendiri di dalam pc/lp kita, itu gimana?)

    thanks mas hhe

    • pake fungsi fwrite() itu .. jd pas di submit kan ke kirim tuh $_POSTnya .. nah tinggal di save ke sbuah file.txt :

      $nama = $_POST[“nama”];
      $hp = $_POST[“hp”];
      $content = $nama . “\n” . $hp;

      // simpan data nama,hp ke sebuah file
      $fo = fopen(“nama_file.txt”, ‘w’);
      $fw = fwrite($fo, $content);
      fclose($fo);

  13. kalo pesan errornya sendEmail[2892]: ERROR => Connection attempt to smtp.gmail.com:587 failed: IO::Socket::INET: connect: Unknown error
    Email sent

    solusinya gimana yaa?

  14. Thanks gan, udah coba jadi..
    Tapi pas saya pindahin ke server hosting linux ga jadi ya.
    Gimana Solusinya untuk server linux..
    Thanx b4

  15. Mas saya nyoba kirim ke email local squirrelmail dg alamat email admin2@localhost status sent, tapi email tidak diterima. kenapa ya mas ?

    [Fri Nov 25 13:37:24.344339 2016] [ssl:warn] [pid 10028:tid 300] AH01909: http://www.example.com:443:0 server certificate does NOT include an ID which matches the server name
    [Fri Nov 25 13:37:25.221389 2016] [ssl:warn] [pid 10028:tid 300] AH01909: http://www.example.com:443:0 server certificate does NOT include an ID which matches the server name
    [Fri Nov 25 13:37:25.286393 2016] [mpm_winnt:notice] [pid 10028:tid 300] AH00354: Child: Starting 150 worker threads.

  16. mas, gua coba kagak bisa. keluar errornya
    Parse error: syntax error, unexpected ‘$to’ (T_VARIABLE) in C:\xampp\htdocs\sendemail.php on line 4

    Kira2 knp ya mas? Mohon pencerahannya..

    • cek file di line 2 : include “sendEmail-v156.php”;

      mungkin ada error disitu.

  17. mas, saya coba work di win10,
    cuma mau tanya kalo send ke lebih dari satu alamat bisa ga sama kirim attachment juga,

    sebelumnya makasih banyak mas

  18. Terimaksih banyak Mas Ambar. Postingan anda sangat membantu saya. Jazhakallahukhoiron katsiron.

Leave a Reply

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

Time limit is exhausted. Please reload CAPTCHA.