Kirim laporan dari database mysql ke email di PHP dengan bantuan PHPMailer

Halo,
Selamat datang di blog saya. Kali saya ingin berbagi mengenai bagaimana cara mengirimkan data dari php mysql database ke email secara otomastis berdasarkan kondisi yang kita inginkan. Fungsinya seperti reminder.
Berikut saya berikan contoh programnya. Anda cukup mengganti nama field-field nya saja

Nama file: kirim.php

<?php
  $dbserver="localhost";
  $dbusername="ronaldo"; //nama user database sesuai yang telah anda buat
  $dbpassword=""; // isi sesuai password database anda
  $dbname="dataku";  //isi nama database yang sudah anda buat
 mysql_connect($dbserver,$dbusername,$dbpassword) or die(mysql_error);
 mysql_select_db($dbname)  or die(mysql_error());
 $todays_date=strtotime(date("Y-m-d"));

// Ini untuk memanggil field-field table pada database anda
 $myquery="select no,ship,nama_cert,party,DATE_FORMAT(expired_date, '%d-%m-%Y')as expired_date,datediff(expired_date,current_date)as selisih from sertifikat where datediff(expired_date,current_date)<='30' and datediff(expired_date,current_date)>='-1000' order by ship asc";
 $sertifikat=mysql_query($myquery) or die (mysql_error());
 if(mysql_num_rows($sertifikat)!=0){
 $laporan="Fyi.<br><br>Berikut data-data sertifikat kapal yang akan habis/sudah habis masa berlakunya:<br><br> <table width=\"90%\" border=\"1\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">";
 cellspacing=\"0\">";
 $laporan .="<tr>";
 $no = 1;
//Ini untuk menampilkan judul masing-masing kolom
 $laporan .="<td><center><b>NO</b></center></td><td><center><b>VESSEL</b></center></td><td><center><b>CERTIFICATE</b></center></td><td><center><b>PARTY</b></center></td><td><center><b>EXPIRED DATE</b></center></td><td><center><b>DAYS LEFT</b></center></td></font>";
 $laporan .="</tr>";
 while($dataku=mysql_fetch_object($sertifikat))
 {
    $num_str = $dataku->selisih;
 if($num_str <= 0)
 {
    $hasil='<font color="#FF0000">Expired</font>';
    }
 elseif($num_str > 0)
    {
    $hasil=$num_str;
    }
  $laporan .="<tr>";
  $laporan .="<td><center>$no</center></td><td>$dataku->ship</td><td>$dataku->nama_cert</td>
  <td><center>$dataku->party</center></td><td><center>$dataku->expired_date</center></td><td><center>$hasil</center></font></td>";
  $laporan .="</tr>"; 
  $no++;
 }
 $laporan .="</table><br> Terima kasih<br><br>
 Rgds,<br><br>
 Admin<br><br>
//Untuk penambahan note anda bisa menambahkan disini
    <font size=0.5 color=#CCCCCC>Note:<br> Email ini terkirim secara otomatis </font>";
    require_once("class.phpmailer.php");
 require_once("class.pop3.php");
 require_once("class.smtp.php");
    $sendmail = new PHPMailer();
// Dibawah ini untuk mengirimkan data ke email tujuan
     $sendmail->addAddress('gue@gmail.com','Gue');

// Jika data tersebut ingin di cc kan ke pihak lain
       $sendmail->AddCc('kamu@gmail.com','Kamu');
// Ini utuk menuliskan subject email nya  
        $sendmail->Subject = 'Auto Reminder ';
// Jika mau menambahkan pesan/kalimat di dalam email. Ini akan muncul dibawah data yang muncul dari database
    $sendmail->Body=$laporan; 
     $sendmail->isHTML(true);

 if(!$sendmail->Send())
 {
  echo "Email gagal dikirim : " . $sendmail->ErrorInfo;
 }
 else
 {
  echo "Your message has been sent!";
 }
 }
?>
Selesai. Simpan program tersebut sesuai nama yang anda inginkan.
Selamat mencoba
Keterangan
Jangan lupa untuk download file-file berikut:
-         class.phpmailer.php
-         class.pop3.php
-         class.smtp.php
File-file tersebut bias anda cari dengan bantuan mbah google. Copy kan file-file tersebut ke folder yang sama dengan program anda
DATE_FORMAT(expired_date, '%d-%m-%Y')as expired_date,datediff(expired_date,current_date)as selisih
->Fungsi ini untuk menghitung selisih hari jatuh tempo dengan tanggal saat ini
require_once("class.phpmailer.php");
require_once("class.pop3.php");
require_once("class.smtp.php");
->Untuk file-file diatas anda bisa mendownload nya. File tersebut anda copy kan ke folder tempat anda menyimpan file program tadi.

Anda bisa mencoba menjalankan program tersebut.
Untuk menjalankan program tersebut berdasarkan waktu yang anda inginkan bisa menggunakan crontab

Comments