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

Translate

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.
 
 
 
 
 
Category
stack