Bulk Email Script in PHP and MySQL Database
Here, I will show how we can send an email to multiple receiver by PHP script. This script also show how can we send bulk if we have server limitation to send particular number of email per particular time. Many web hosting provider do not support bulk email so I have set the script to get out of this limitation.
This Bulk Email script can send HTML email.
Here we will create two files to send an email. First one is HTML template of email and second one is actual code to send the email.
test.html, you can create this html file as you want
sendmail.php
<?php $con = mysql_connect("localhost","dbuser","dbpass"); // replace dbuser, dbpass with your db user and password mysql_select_db("dbname", $con); // replace dbname with your database name /* To use this script database table must have three fields named sno, email and sub_status */ $query = "select sno, email from dbtable where sub_status = 'SUBSCRIBED'"; $result = mysql_query($query, $con); $emails = array(); $sno = array(); while($row=mysql_fetch_assoc($result)){ $sno[] = $row['sno']; // this will be used to unsubscribe the user $emails[]=$row['email']; // email id of user } /* you can also get email id data from CSV using below code */ //$file = file_get_contents("travel_database.csv"); //$emails = explode(",",$file); /* count.txt is used to store current email sent number/count */ $count = file_get_contents("count.txt"); for($i=$count;$i<count($emails);$i++) { $to = $emails[$i]; // subject $subject = 'Set Your Title Here'; // message $message = file_get_contents("sample.html"); // this will get the HTML sample template sample.html $message .= '<p><a href="http://yourdomain.com/path-to-folder/unsubscribe.php?id='.$sno[$i].'&username='.$emails[$i].'">Please click here to unsubscribe.</a></p> </body> </html>'; // To send HTML mail, the Content-type header must be set $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; // Additional headers //$headers .= "To: $to" . "\r\n"; $headers .= 'From: Name <info@yourdomain.com>' . "\r\n"; //$headers .= 'Cc: sendcc@yourdomain.com' . "\r\n"; //$headers .= 'Bcc: sendbcc@yourdomain.com' . "\r\n"; // Mail it if(mail($to, $subject, $message, $headers)) { $file = fopen("mailsentlist.txt","a+"); // add email id to mailsentlist.txt to track the email sent fwrite($file, $to.",\r\n"); fclose($file); } else { $file = fopen("notmailsentlist.txt","a+"); // add email to notmailsentlist.txt here which have sending email error fwrite($file, $to.",\r\n"); fclose($file); } if(($i-$count)>=200) // this will send 200 mails from database per execution { $filec = fopen("count.txt",'w'); // store current count to count.txt fwrite($filec, $i); fclose($filec); break; } }//for end $filec = fopen("count.txt",'w'); // store fine count to count.txt this will be used as a start point of next execution fwrite($filec, $i); fclose($filec); ?>
You can set the cron job on sendmail.php on particular time frame. For example if you hosting provider support only 100 mail per hour than you can set cron job par hour and update the value here
if(($i-$count)>=100) // update this in code of sendmail.php
Hi, my name is Delphine and I am the marketing manager at SwingSEO Solutions. I was just looking at your Bulk Email Script in PHP and MySQL Database – PrashantBlog site and see that your website has the potential to become very popular.
Very good info. Lucky me I recently found your site by accident (stumbleupon).
I’ve book marked it for later!
I simply couldn’t leave your web site before suggesting that I actually loved the standard info a person supply in your guests? Is gonna be again continuously to check up on new posts.