Loserkidzz

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

Tag Archives: phpmailer

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