Send Bulk Email in php using PHPMailer is better way to sending multiple mail with ajax…
Bulk mail is generally used for advertising campaigns where a company or organisation may send out information about a new product, invitation to a product launch, promotional offers, deals or sales pitches, etc. Bulk mail services are often used by organisations to send out coupons for different products or services.
Send Bulk Email Example :
First of all , Create database with ‘test’ name in phpmyadmin.And Create table with ‘customer’ name in database.In table add id(int),name(varchar) & email(varchar) field…
Download CodeCreate index.php file :
<?php
$connect = new PDO("mysql:host=localhost;dbname=test", "root", "");
$query = "SELECT * FROM customer ORDER BY id";
$statement = $connect->prepare($query);
$statement->execute();
$result = $statement->fetchAll();
?>
<!DOCTYPE html>
<html>
<head>
<title>Send Bulk Email</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">Send Bulk Email</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["name"].'</td>
<td>'.$row["email"].'</td>
<td>
<input type="checkbox" name="single_select" class="single_select" data-email="'.$row["email"].'" data-name="'.$row["name"].'" />
</td>
<td><button type="button" name="email_button" class="btn btn-info btn-xs email_button" id="'.$count.'" data-email="'.$row["email"].'" data-name="'.$row["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>
</body>
</html>
<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.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>
Create send.php file :
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
if(isset($_POST['email_data']))
{
require 'PHPMailer/src/Exception.php';
require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';
$output = '';
foreach($_POST['email_data'] as $row)
{
$mail = new PHPMailer;
$mail->IsSMTP(); //Sets Mailer to send message using SMTP
$mail->Host = 'mail.website.com'; //Sets the SMTP hosts of your Email hosting, this for Godaddy
$mail->Port = '465'; //Sets the default SMTP server port
$mail->SMTPAuth = true; //Sets SMTP authentication. Utilizes the Username and Password variables
$mail->Username = 'mail@example.com'; //Sets SMTP username
$mail->Password = 'password@123'; //Sets SMTP password
$mail->SMTPSecure = 'ssl'; //Sets connection prefix. Options are "", "ssl" or "tls"
$mail->From = 'mail@example.com'; //Sets the From email address for the message
$mail->FromName = 'Code With Nevil'; //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 = 'Testing'; //Sets the Subject of the message
//An HTML or plain text message body
$mail->Body = '
<p>This is a test message...</p>
';
$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;
}
}
?>