Loserkidzz

Story Of a Lonely Guy.. :) II Mencoba meninggalkan kebaikan, karna waktu begitu cepat berlalu

Membuat Email Otomatis Dengan PHP Mysql + PHPmailer + Crontab


Bismillah, Berikut saya akan menulis sedikit tutorial sederhana mengenai email ucapan selamat yang dikirim secara otomatis kepada pegawai kantor yang sedang berulang tahun dan juga kepada seluruh pegawai yang ada di lingkungan kantor. Tutorial ini sudah running dan saya coba publish, mudah-mudahan bermanfaat untuk yang membaca nya..ammiin.

          Dalam tutorial kali ini dibuat menggunakan bahasa pemograman PHP ditambah dengan Class PHPmailer dan juga Crontab, crontab disini berfungsi sebagai peng-eksekusi kode php dengan penjadwalan (schedule) yang bisa ditentukan sesuai keinginan. Untuk dasar pengetahuan Crontab dapat merujuk pada kesini.

Langkah-langkah yang digunakan adalah sebagai berikut:

  • Buat database dan table dengan struktur seperti dibawah ini, database ini berfungsi untuk menyimpan data-data pegawai (No Pegawai, Nama Lengkap ,Tgl Lahir , Email, dll) :

ID

FULLNAME

NO_PEG

EMAIL

TGL_LAHIR

STATUS

1 Del Piero 123451 del_piero@juve.com 1945-17-08

1

2 Pavel Nedved 123452 nedved@juve.com 1979-11-20

1

3 Gianluigi Buffon 123453 buffon@juve.com 1970-10-11

1

4 David Trezeguet 123454 trezeguet@juve.com 1980-09-12

1

5 Giorgio Chielini 123455 chielini@juve.com 1982-11-23

1

  • Setelah database sudah selesai dibuat, langkah selanjutnya adalah membuat file koneksi.php agar dapat berkomunikasi dengan database.

<?php

mysql_connect(“localhost”, “root”, “YourDBpassword”) or die (“Gagal Konek ke Server”);

mysql_select_db(“db­_name”) or die (“Database Not found”);

$today = date(“m-d”);

$query  = “SELECT FULLNAME, NO_PEG, EMAIL FROM table_name WHERE TGL_LAHIR LIKE ‘%$today’ AND STATUS=’1′”;

$result = mysql_query($query);

$row = mysql_fetch_array($result);

$cek = mysql_num_rows($result);

?>

  • Download Class PHPMailer-nya disini
  • Kemudian buat file email.php dan tuliskan script PHP sebagai berikut.

<?php

require ‘phpmailer/class.phpmailer.php’;

require_once(‘koneksi.php’);

$date = date(“d-m-Y”);

if ($cek>0){

try {

$mail      = new PHPMailer(true); //New instance, with exceptions enabled

$body     =   ‘<html>

<head>

</head>

<body>

<h2 align=”center”><font face=”Bradley Hand ITC”>Selamat Ulang Tahun<br />

‘.($row[“FULLNAME”]).’ –

‘.($row[“NO_PEG”]).’

<br />

‘.($date).’

</h2></font>

<div align=”center”>

<img src=”http://YourDomain.com/images/stories/happy-birthday.jpg”                                  width=”480px” height=”350px” />

</div>

<h2 align=”center”><font face=”verdana”><b>

Seluruh Pengurus dan Karyawan<br />

PT. ANGIN RIBUT<br />

Mengucapkan Selamat Ulang Tahun Kepada ‘.$row[“FULLNAME”].'<br />

Semoga Selalu diberikan keberkahan hidup <br />dan<br /> selalu berada                               dalam lindungan Tuhan YME.</b>

</font></h2>

</body></html>’;

$mail->IsSMTP();                           // tell the class to use SMTP

$mail->SMTPAuth   = true;                  // enable SMTP authentication

$mail->SMTPSecure = ‘tls’;

$mail->Port  = 587;                    // set the SMTP server port

$mail->Host  = “smtp.gmail.com”; // SMTP server

$mail->Username   = “personalia@YourDomain.com”;     // SMTP server username

$mail->Password   = “YourPassword”;            // SMTP server password

//$mail->IsSendmail();  // tell the class to use Sendmail

$mail->AddReplyTo(“personalia@YourDomain.com “,”Personalia PT.ANGIN RIBUT”);

$mail->From   = ” personalia@YourDomain.com “;

$mail->FromName   = ” Personalia PT.ANGIN RIBUT “;

$to = $row[‘EMAIL’];

$bcc = “broadcast@YourDomain.com”;

$mail->AddAddress($to);

$mail->AddBCC($bcc);

$mail->Subject  = “Selamat Ulang Tahun “;

//$mail->AltBody    = “To view the message, please use an HTML compatible email viewer!”;

// optional, comment out and test

//$mail->WordWrap   = 80; // set word wrap

$mail->MsgHTML($body);

$mail->IsHTML(true); // send as HTML

$mail->Send();

echo ‘Message has been sent.’;

} catch (phpmailerException $e) {

echo $e->errorMessage();

}

}

else {

echo “tidak ada yang ber-ulang tahun di hari ini..”;

}

?>

  • Sesuaikan bagian berikut, dengan setting dan kondisi tempat anda :

 $mail->SMTPSecure = ‘tls’;

$mail->Port       = 587;                    // set the SMTP server port

$mail->Host       = “smtp.gmail.com”; // SMTP server

$mail->Username   = “personalia@YourDomain.com”;     // SMTP server username

$mail->Password   = “YourPassword”;

  • Kemudian buat script di linux yank berfungsi untuk menjalankan file email.php tersebut. Buat dengan editor yang anda suka, disini saya menggunakan editor vim.

            #vim runEmail.sh

  • Tekan Tombol “i” atau bsa juga tombol “INSERT”, Isi sebagai berikut :

            nohup elinks http://localhost/email/email.php &

  • Kemudian simpan dengan mengetik ESC lalu :wq
  • Taruh seluruh file kedalam root direktori webserver. Buat schedule menggunakan crontab, yang akan menjalankan file shell script “runEmail.sh”.

            #crontab –e

30 4 * * * /opt/lampp/htdocs/email/runEmail.sh

  • Schedule diatas berarti akan menjalankan script, setiap hari pada pukul 4:30 WIB. Untuk lebih jelas tentang crontab bisa baca disini
  • Selesai

Demikian tutorial ini, semoga berguna bagi yang membaca. Aammiin.

CMIIW – Correct Me If I’m Wrong

Download Versi PDF Disini

Advertisements

15 responses to “Membuat Email Otomatis Dengan PHP Mysql + PHPmailer + Crontab

  1. Pingback: Cron scheduling email newsletter (Automate Email) « Carpe Diem, Seize The Day!

  2. Java grafis December 22, 2013 at 1:20 PM

    masih bingung nerapinya

  3. zer March 28, 2014 at 9:19 AM

    Kok g jalan ya bro, kalau bisa bileh mnta soyrce code yg sudah jalan gan.

    Makasih

  4. Andri Heru saputra June 23, 2014 at 8:59 PM

    kalau di windows 7 krim email dengan script yang di atas gimana mas..
    caranya..

  5. harry October 18, 2014 at 5:06 PM

    mantav..bisa jalan bro…thx banget buat master suhu
    ,
    klo yang ulang taahun nya ada yang sama pada hari itu, gmn caranya ngirim lebih dari satu. thx mhn pencerhannnya lagi master suhu
    ato send ke email aja hry@alizan.tv

  6. itankjs November 16, 2014 at 6:36 PM

    dicoba dulu gan,, lagi cari2 phpmail nich

    http://ji-software.com

  7. loserkidzz March 23, 2015 at 10:45 AM

    klo lebih dari 1 orang yg tgl lahir nya sama, biasanya ane bikin 2 table dan 2 script terpisah 🙂 trus bikin cron baru untuk jalanin script tsb.

  8. loserkidzz March 23, 2015 at 10:46 AM

    pake xampp trus masukin ke task scheduller gan..

  9. loserkidzz March 23, 2015 at 10:47 AM

    source bsa di download di link yg ada koq bos.. ngga ada yg di tutup2in 🙂

  10. fad June 1, 2015 at 12:17 PM

    masi bingung, but anyway great jobs.
    btw bisa request tutor ga..??
    tutor : agar supaya detil pemesanan di web/blog bisa terkirim ke email yg punya web dan juga notif ke pembeli.
    istilah singkatnya : invoice email.
    domain dan hosting sudah punya.
    mohon yh gan hhhehe, maksa.

    ato bisa ke : delur.griya@gmail.com – ada fee buat agan.

  11. loserkidzz July 30, 2015 at 3:30 PM

    klo untuk toko online, banyak koq gan plugin2 ecommerce di wordpress. salah satunya mungkin woocommerce, fasilitas semua sudah lengkap koq.. silahkan dicoba 🙂

  12. satriaajoez September 28, 2015 at 11:43 PM

    Gan mau nanya..script nya bisa jln di windows ga??n klo ga pke cron job bisa ga emailnya otomatis terkrim?maaf masih newbie n lg buat skripsi..he mhon dbantu segera..thanks

  13. loserkidzz November 2, 2015 at 10:09 AM

    di windows tetep bsa jalan koq gan, pake xampp + schedule task

  14. jay September 18, 2016 at 8:52 PM

    gimana cranya gan klo d hari yang sama it lebih dari 40 orng. ap d buat table dn ngulang script sbnyak it gan. maaf newbie gan

  15. Take September 27, 2016 at 10:32 AM

    Mau tanya mastah..

    itu kan schedulernya sama script buat run email.php nya pake linux,
    kalo di windows buat nya gmna yaa gan…
    soalnya ane buat di windows n pake xampp.. lagi nyari auto mailer bgni soalnya buat auto notif..

    mohon pencerahannya gan..

Berikan Komentar mu...

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: