PHP Mailer Advance [mengirim email per jam]

August 5th, 2008 by dr.emi

Bagaimana mensiasati hosting yang membatasi pngirimana email newsletter dalam satu jam Huh?

misalna saja, kita hanya diizinkan mengirmkan email sejumlah 600 email dalam 1 jam…

dengan bantuan perhitungan microtime dan sleep functions dalam PHP, kita dapat melakukanna

 

Start DatTime Code:

Code:

function getStartTime()
{
$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
$starttime = $mtime;
}

fungsi diatas berfungsi untuk mengambil timing awal saat pengiriman email dimulai

dan ini mailer na:

Code:

$maxmsgs = 10; // kirim max 10 email pe menit, jadi kalo 1jam berarti 10 x 60 = 600 email perjam

for($i=1; $i<$_POST[jumlah]; $i++)
{
global $starttime, $maxmsgs;

$a=$i.$_POST['dari'];

@mail($_POST['dari'], $_POST['subjek'], $_POST['pesan'],
"Return-path: < $_POST[kepada] >\n".
"Received: Server Penjahat\n".
"From: $a < $a >\n".
"To: Yang Gw Sikat < $_POST[kepada] >\n".
"Date: ". date("D, M d Y H:i:s")." +0700\n".
"X-Mailer: BlackCat Hacker\n".
"X-Priority: 1\n".
"Message-Id:".rand()."");

$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
$endtime = $mtime;
$totaltime = ($endtime - $starttime);

if($i%$maxmsgs==0)
{
$sleeptime = 60-$totaltime;
// menunggu dalam beberapa detik
sleep($sleeptime);
getStartTime();
continue;
}
elseif(($totaltime>=60) && ($i%$maxmsgs!=0))
{
// dalam 1 menit terkirim 10 email, lalu script emailer akan distirahatkan selama 15 detik, baru diset ulang perhitungan waktu kirim email
sleep(15);
getStartTime();
continue;
}
}

echo "<p>Beres Bos !!! <a href='$_SERVER[PHP_SELF]'>Kembali</a></p>";

jadi lengkapna kalo dah make form bisa ke gini:

Code:

<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Kirim email jumlah tertentu dalam satu jam</title>
</head>
<body>
<H2>Kirim Email</H2>
<form name="emailku" method="post" action="">
Dari:<BR>
<input type="text" name="dari">
<BR><BR>
Kepada:<BR>
<input type="text" name="kepada">
<BR><BR>
Jumlah:<BR>
<input type="text" name="jumlah">
<BR><BR>
Subjek:<BR>
<input type="text" name="subjek">
<BR><BR>
Isi Pesan:<BR>
<textarea name="pesan"></textarea>
<BR><BR>
<input type="submit" name="submit" value="Kirim !!!">
</form>

<?
if(isset($_POST['submit']))
{

echo "<p><img src='images/ajax-loader.gif'></p>";

function getStartTime()
{
$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
$starttime = $mtime;
}

$maxmsgs = 10; // kirim max 10 email pe menit, jadi kalo 1jam berarti 10 x 60 = 600 email perjam

for($i=1; $i<$_POST[jumlah]; $i++)
{
global $starttime, $maxmsgs;

$a=$i.$_POST['dari'];

@mail($_POST['dari'], $_POST['subjek'], $_POST['pesan'],
"Return-path: < $_POST[kepada] >\n".
"Received: Server Penjahat\n".
"From: $a < $a >\n".
"To: Yang Gw Sikat < $_POST[kepada] >\n".
"Date: ". date("D, M d Y H:i:s")." +0700\n".
"X-Mailer: BlackCat Hacker\n".
"X-Priority: 1\n".
"Message-Id:".rand()."");

$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
$endtime = $mtime;
$totaltime = ($endtime - $starttime);

if($i%$maxmsgs==0)
{
$sleeptime = 60-$totaltime;
// menunggu dalam beberapa detik
sleep($sleeptime);
getStartTime();
continue;
}
elseif(($totaltime>=60) && ($i%$maxmsgs!=0))
{
// dalam 1 menit terkirim 10 email, lalu script emailer akan distirahatkan selama 15 detik, baru diset ulang perhitungan waktu kirim email
sleep(15);
getStartTime();
continue;
}
}

echo "<p>Beres Bos !!! <a href='$_SERVER[PHP_SELF]'>Kembali</a></p>";

}
?>

</body>
</html>

bijimane Huh?? dicoba yakk….

Popularity: 7% [?]

Download Demo Unavailable
Bookmark Subscribe
Hello my fox! Glad to see you today!

If you love my tutorial, please chose any action from the left button.
No comments yet.
Hi.. ! Wanna say anything about my tutorial ?
Just say it with fill the comment form.
Comment Form
 

 
 
 
 
 
Category
stack