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