Wednesday, February 22, 2017

Mengirim email dengan PHP dan server XAMPP

  No comments
pingin program yang bisa otomatis mengirim email dengan PHP hanya dengan sekali klik?
tidak perlu mengetik ulang, dan hanya menggunakan data dari database yang sudah ada?
selamat, anda menemukan tempat yang tepat...

apa kelebihan dari emailer PHP ini?
anda bisa menggunakan domain terserah anda, bahkan anda bisa mengirim email dengan nama "dwi@google.com", hanya saja program ini tidak bisa menerima email masuk.. hanya untuk mengirim email saja,

sudah cukup basa basi nya, mari kita mulai pembahasan kita.
beri nama code berikut SMTPconfig.php

//Server Address
$SmtpServer="smtp.gmail.com";
$SmtpPort="587";
//email gmail anda
$SmtpUser="dwi@gmail.com";
$SmtpPass="dwi123";

kemudian buat lagi file php baru, dengan nama SMTPClass.php, isi nya sebagai berikut


class SMTPClient
{
function SMTPClient ($SmtpServer, $SmtpPort, $SmtpUser, $SmtpPass, $from, $to, $cc, $subject, $body)
{
$this->SmtpServer = $SmtpServer;
$this->SmtpUser = base64_encode ($SmtpUser);
$this->SmtpPass = base64_encode ($SmtpPass);
$this->from = $from;
$this->to = $to;
$this->cc = $cc;
$this->subject = $subject;
$this->body = $body;

 if ($SmtpPort == "")
 {
 $this->PortSMTP = 25;
  }else{
 $this->PortSMTP = $SmtpPort;
 }

}
                  
function SendMail ()
{
 if ($SMTPIN = fsockopen ($this->SmtpServer, $this->PortSMTP))
 {
          
           fputs ($SMTPIN, "EHLO \r\n"); 
           $talk["hello"] = fgets ( $SMTPIN, 1024 );
                  
     fputs($SMTPIN, "auth login\r\n");
     $talk["res"]=fgets($SMTPIN,1024);
   fputs($SMTPIN, $this->SmtpUser."\r\n");
      $talk["user"]=fgets($SMTPIN,1024);
     
      fputs($SMTPIN, $this->SmtpPass."\r\n");
   $talk["pass"]=fgets($SMTPIN,256);
          
           fputs ($SMTPIN, "MAIL FROM: <".$this->from.">\r\n"); 
           $talk["From"] = fgets ( $SMTPIN, 1024 ); 
           fputs ($SMTPIN, "RCPT TO: <".$this->to.">\r\n"); 
           $talk["To"] = fgets ($SMTPIN, 1024);
           fputs($SMTPIN, "RCPT TO: <".$this->cc.">\r\n");
           $talk["Cc"] = fgets($SMPTIN, 1024);
          
           fputs($SMTPIN, "DATA\r\n");
   $talk["data"]=fgets( $SMTPIN,1024 );
          
  
   fputs($SMTPIN, "To: <".$this->to.">\r\nCc: <".$this->cc.">\r\nFrom: <".$this->from.">\r\nSubject:".$this->subject."\r\n\r\n\r\n".$this->body."\r\n.\r\n");
   $talk["send"]=fgets($SMTPIN,256);
          
           //CLOSE CONNECTION AND EXIT ...
    
           fputs ($SMTPIN, "QUIT\r\n"); 
           fclose($SMTPIN);
   // 
 } 
return $talk;

}       
          
       
}


kalau sudah, buat halaman satu lagi untuk to, cc, from dan isi dari email yang mau dikirim, code nya sebagai berikut :

session_start();
include 'fungsi.php'; //tempat koneksi
$mtx = key::connect(); //panggil koneksi
include 'SMTPconfig.php'; //
include 'SMTPClass.php';
$ccr = $mtx->query("select * FROM tbl_siswa");
$row = $ccr->fetch(PDO::FETCH_OBJ);

 if($_SERVER["REQUEST_METHOD"] == "GET"):
    $to = "dwi.ahmad@zoho.com";
    $from = "dwi@google.com";
    $cc = "";
    $subject = "Report";
    $body = "
Berikut adalah detail CCR:
Nomor : Saya
Pemohon : Saya
Item Lama : Saya
Item Baru : $row
HS Matrix : $row
HS Kurniadi : $row
Obyek Perubahan : $op
Target Selesai : $row->target
Permasalahan :
$row->prob
Analisa, Pengumpulan Data & Usulan Perbaikan :
$row->APDUP
Jenis & Pelaksanaan Percobaan :
$row->JPP
Hasil :
$row->hasil
HS Roll : $row
Terimakasih,
Note : Pesan ini digenerate oleh computer.
            ";
    $SMTPMail = new SMTPClient ($SmtpServer, $SmtpPort, $SmtpUser, $SmtpPass, $from, $to, $cc, $subject, $body);
    $SMTPChat = $SMTPMail->SendMail();
endif;
$qry = $mtx->prepare("update tbl_ccr SET email=? WHERE `NoCcr`='$NoCcr'");
$qry->execute(array($eml));

code diatas masih acak acakan, silahkan diubah sesuaikan sendiri dengan code sobat, untuk koneksi PDO, sudah admin bahas pada postingan sebelumnya.. semoga berhasil..

No comments :

Post a Comment