PHP Mailer Advance [mengirim email per jam]

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….

Leave a Reply

Your email address will not be published. Required fields are marked *