Cara Mengirim Email Massal di PHP menggunakan PHPMailer dengan Ajax JQuery

Posting Komentar
lacodeid

Sebagian besar situs memiliki fitur pengiriman email seperti mengirim email tunggal atau email massal.Jadi di posting ini kita sudah membahas topik seperti bagaimana kita bisa mengirim email massal dengan menggunakan script PHP dengan PHPMailer Ajax dan Jquery. Kami telah menggunakan PHPMailer Library karena fungsi PHP mail () tidak akan bekerja pada localhost. Jadi kita sudah membahas bagaimana kita bisa mengirim email tunggal atau massal dari localhost di PHP dengan PHPMailer dengan menggunakan Ajax Jquery. Jadi kita bisa mengirim email tunggal atau massal tanpa refresh atau halaman web.

Kami telah menggunakan SMTP untuk mengirim email massal karena SMTP kami cara yang paling disarankan untuk mengirim email dari localhost atau server online. Jika kita sudah menggunakan SMTP untuk mengirim email maka PHP memiliki library perpustakaan PHPMailer yang bagus yang memungkinkan untuk mengirim email via SMTP dengan memberikan mandat yang dibutuhkan. Jika Anda memiliki akun email web hosting maka perusahaan hosting Anda akan memberikan kredensial SMTP seperti nama pengguna, kata sandi, alamat server keluar dan masuk dan nomor port. Dengan menggunakan informasi ini, Anda dapat mengonfigurasi detail ini ke kelas PHPMailer dan kemudian Anda dapat mengirim email dari skrip Anda. 

Di posting ini kami telah membuat aplikasi sederhana dari mana kami bisa mengirim email massal ke pelanggan dengan sekali klik. Disini kita sudah menggunakan Jquery dengan Ajax sehingga kita bisa mengirim email tanpa refresh halaman web. Saat kita klik tombol maka akan mengumpulkan email dari atribut data kotak centang dengan menggunakan Jquery dan setelah mengumpulkan data maka akan mengirimkan data ini ke permintaan Ajax dan via Ajax request akan di transfer ke script PHP dan dalam hal ini kita sudah menggunakan kelas PHPMailer dengan wajib. Konfigurasi SMTP dan akan mengirim email massal dan setelah mengirim semua email berhasil, ia akan mengirim data ke permintaan Ajax dan akan ditampilkan di halaman web. Dengan cara ini kita bisa menggunakan Ajax dengan Jquery untuk mengirim email massal dengan menggunakan PHP dengan PHPMailer Library.
Library PHPMailer download DISINI didalam folder latihan buat folder class letakan file class.phpmailer.php didalam folder
untuk script kode index.php seperti dibawah ini :
<?php
//index.php
$connect = new PDO("mysql:host=localhost;dbname=name database", "root", "password");//pdo
$query = "SELECT * FROM customer ORDER BY customer_id";
$statement = $connect->prepare($query);
$statement->execute();
$result = $statement->fetchAll();
?>
<!DOCTYPE html>
<html>
 <head>
  <title>Mengirim Email dengan PHPMailer menggunakan PHP Ajax</title>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
 </head>
 <body>
  <br />
  <div class="container">
   <h3 align="center">Mengirim Email dengan PHPMailer menggunakan PHP Ajax</h3>
   <br />
   <div class="table-responsive">
    <table class="table table-bordered table-striped">
     <tr>
      <th>Customer Name</th>
      <th>Email</th>
      <th>Select</th>
      <th>Action</th>
     </tr>
     <?php
     $count = 0;
     foreach($result as $row)
     {
      $count++;
      echo '
      <tr>
       <td>'.$row["customer_name"].'</td>
       <td>'.$row["customer_email"].'</td>
       <td>
        <input type="checkbox" name="single_select" class="single_select" data-email="'.$row["customer_email"].'" data-name="'.$row["customer_name"].'" />
       </td>
       <td><button type="button" name="email_button" class="btn btn-info btn-xs email_button" id="'.$count.'" data-email="'.$row["customer_email"].'" data-name="'.$row["customer_name"].'" data-action="single">Send Single</button></td>
      </tr>
      ';
     }
     ?>
     <tr>
      <td colspan="3"></td>
      <td><button type="button" name="bulk_email" class="btn btn-info email_button" id="bulk_email" data-action="bulk">Send Bulk</button></td></td>
     </td>
    </table>
   </div>
  </div>
<script>
$(document).ready(function(){
 $('.email_button').click(function(){
  $(this).attr('disabled', 'disabled');
  var id = $(this).attr("id");
  var action = $(this).data("action");
  var email_data = [];
  if(action == 'single')
  {
   email_data.push({
    email: $(this).data("email"),
    name: $(this).data("name")
   });
  }
  else
  {
   $('.single_select').each(function(){
    if($(this). prop("checked") == true)
    {
     email_data.push({
      email: $(this).data("email"),
      name: $(this).data('name')
     });
    }
   });
  }
  
  $.ajax({
   url:"send_mail.php",
   method:"POST",
   data:{email_data:email_data},
   beforeSend:function(){
    $('#'+id).html('Sending...');
    $('#'+id).addClass('btn-danger');
   },
   success:function(data){
    if(data = 'ok')
    {
     $('#'+id).text('Success');
     $('#'+id).removeClass('btn-danger');
     $('#'+id).removeClass('btn-info');
     $('#'+id).addClass('btn-success');
    }
    else
    {
     $('#'+id).text(data);
    }
    $('#'+id).attr('disabled', false);
   }
   
  });
 });
});
</script>
 </body>
</html>
untuk script send_mail.php seperti dibawah ini :
<?php
//send_mail.php

if(isset($_POST['email_data']))
{
 require 'class/class.phpmailer.php';
 $output = '';
 foreach($_POST['email_data'] as $row)
 {
  $mail = new PHPMailer;
  $mail->IsSMTP(); //Sets Mailer to send message using SMTP
  $mail->Host = 'smtpout.secureserver.net';  //Sets the SMTP hosts of your Email hosting, this for Godaddy
  $mail->Port = '80'; //Sets the default SMTP server port
  $mail->SMTPAuth = true;       //Sets SMTP authentication. Utilizes the Username and Password variables
  $mail->Username = 'xxxxxxxxxx'; //Sets SMTP username
  $mail->Password = 'xxxxxxxxxx';  //Sets SMTP password
  $mail->SMTPSecure = '';       //Sets connection prefix. Options are "", "ssl" or "tls"
  $mail->From = 'info@webslesson.com'; //Sets the From email address for the message
  $mail->FromName = 'Webslesson'; //Sets the From name of the message
  $mail->AddAddress($row["email"], $row["name"]); //Adds a "To" address
  $mail->WordWrap = 50; //Sets word wrapping on the body of the message to a given number of characters
  $mail->IsHTML(true); //Sets message type to HTML
  $mail->Subject = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit'; //Sets the Subject of the message
  //An HTML or plain text message body
  $mail->Body = '
  <p>Sed at odio sapien. Vivamus efficitur, nibh sit amet consequat suscipit, ante quam eleifend felis, mattis dignissim lectus ipsum eget lectus. Nullam aliquam tellus vitae nisi lobortis, in hendrerit metus facilisis. Donec iaculis viverra purus a efficitur. Maecenas dignissim finibus ultricies. Curabitur ultricies tempor mi ut malesuada. Morbi placerat neque blandit, volutpat felis et, tincidunt nisl.</p>
  <p>In imperdiet congue sollicitudin. Quisque finibus, ipsum eget sagittis pellentesque, eros leo tempor ante, interdum mollis tortor diam ut nisl. Vivamus odio mi, congue eu ipsum vulputate, consequat hendrerit sapien. Aenean mauris nibh, ultrices accumsan ultricies eget, ultrices ut dui. Donec bibendum lectus a nibh interdum, vel condimentum eros auctor.</p>
  <p>Quisque dignissim pharetra tortor, sit amet auctor enim euismod at. Sed vitae enim at augue convallis pellentesque. Donec rhoncus nisi et posuere fringilla. Phasellus elementum iaculis convallis. Curabitur laoreet, dui eget lacinia suscipit, quam erat vehicula nulla, non ultrices elit massa eu dolor. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam vulputate mauris vel ultricies tempor.</p>
  <p>Mauris est leo, tincidunt sit amet lacinia eget, consequat convallis justo. Morbi sollicitudin purus arcu. Suspendisse pellentesque interdum enim non consectetur. Etiam eleifend pharetra ante a feugiat.</p>
  ';

  $mail->AltBody = '';

  $result = $mail->Send();      //Send an Email. Return true on success or false on error

  if($result["code"] == '400')
  {
   $output .= html_entity_decode($result['full_error']);
  }

 }
 if($output == '')
 {
  echo 'ok';
 }
 else
 {
  echo $output;
 }
}
asasasasa

Related Posts

Posting Komentar