Source Code For gmail.php
Turn Line Numbers Off
<?php
- function getmicrotime(){
- list($usec, $sec) = explode(" ",microtime());
- return ((float)$usec + (float)$sec);
- }
- $time_before=getmicrotime();
- $refresh=3;
- if (!$_GET['avg_time']) {
- $avg_time=3;
- }else{
- $avg_time=$_GET['avg_time'];
- }
- if ($_GET['stop']=='ok'){
- $next=$_GET['id']+1;
- $log=fopen("gmail_log.html","a+");
- fwrite($log,"<p>Stopped on ".date("d/m/Y @ H:i")." at message number ".$_GET['id']."</p>\n");
- fwrite($log,"<a href=\"gmail.php?num=".$next."&my_addr=".$_GET['addr']."&restart=1&start=1&max_num=".$_GET['max_num']."&avg_time=$avg_time\">Restart</a></p>\n");
- fclose($log);
- }
- if (!$_GET['num'] && $_GET['start']==1){
- $time=intval($_GET['max_num']*$refresh+$_GET['max_num']*$avg_time);
- $jour=intval(date("j",$time))-1;
- $date=$jour." days ".date("H",$time)." hours ".date("i",$time)." minutes";
- $log=fopen("gmail_log.html","w+");
- fwrite($log,"<p>Started on ".date("d/m/Y @ H:i")."<br />$max_num messages to send, which should take about $date.</p>\n");
- fclose($log);
- }
- if ($_GET['restart']==1){
- $left=$_GET['max_num']-$_GET['num'];
- $time=intval(($left * $refresh) + ($left * $avg_time));
- $jour=intval(date("j",$time))-1;
- $date=$jour." days ".date("H",$time)." hours ".date("i",$time)." minutes";
- $log=fopen("gmail_log.html","a+");
- fwrite($log,"<p>Restarted on ".date("d/m/Y @ H:i")."<br />$left messages left to send, which should take about $date.</p>\n");
- fclose($log);
- }
- if ($_GET['num'] && $_GET['num']==$_GET['max_num']){
- $log=fopen("gmail_log.html","a+");
- fwrite($log,"<p>Finished on ".date("d/m/Y @ H:i")."</p>\n");
- fclose($log);
- echo "<p>$j messages sent.<br /><a href='gmail_log.html'>View Log</a></p>";
- }
- if ($_POST['action']=="go" && !$_GET['max_num']){
- $my_addr=$_REQUEST['my_addr'];
- if (eregi("@gmail.com",$my_addr)){
- $nom_fichier = $_FILES['fichier']['tmp_name'];
- $nom_destination = 'mailbox';
- move_uploaded_file($nom_fichier, $nom_destination);
- //echo $_FILES['fichier']['error'];
- $mail=fopen("mailbox","r");
- $max_num=0;
- while (!feof($mail)) {
- $line.=fread($mail,4096);
- }
- fclose($mail);
- $emails=explode("\nFrom - ",$line);
- $i=0;
- if (!is_dir("tmp_mail")) mkdir("tmp_mail",0755);
- foreach($emails as $email) {
- $max_num++;
- if ($i!=0) $email="\nFrom - ".$email;
- $message_file=fopen("tmp_mail/message$i.txt","w+");
- fwrite($message_file,$email);
- fclose($message_file);
- $mess=fopen("tmp_mail/message$i.txt","r");
- $headers='';
- $text='';
- $in_header="yes";
- $line_num=0;
- while (!feof($mess)) {
- $line=fgets($mess);
- if (!eregi("[a-z0-9_-]",$line) && $line_num>0){
- $in_header="no";
- }
- if ($in_header=="yes"){
- $headers.=eregi_replace("^[ \n\t\r].*","",$line);
- }else{
- $text.=$line;
- }
- $line_num++;
- }
- fclose($mess);
- $headers=trim(eregi_replace("\nTo: ([^\n]*)","",$headers));
- ereg("\nSubject: ([^\n]*)",$headers,$sub);
- $subject=trim($sub[1]);
- $headers=eregi_replace("\nReceived: [^\n]*","",$headers);
- $headers=eregi_replace("\ncc: [^\n]*","",$headers);
- $headers=eregi_replace("\nbcc: [^\n]*","",$headers);
- $headers=eregi_replace("\nSubject: [^\n]*","",$headers);
- $sending=fopen("tmp_mail/message$i.txt","w");
- fwrite($sending,$subject."\n{[]}\n".$headers."\n{[]}\n".rtrim($text));
- //fwrite($sending,$headers);
- fclose($sending);
- $to=$my_addr;
- $i++;
- }
- ?>
- <html>
- <head>
- <?php
- echo "<meta http-equiv=\"Refresh\" content=\"$refresh;url=http://jfoucher/gmail.php?start=1&max_num=$max_num&my_addr=$to&num=0\">";
- echo "</head><body>";
- if(!unlink("mailbox"))
- {
- echo "Could not remove temporary mailbox file";
- }else{
- echo "Temporary mailbox file removed";
- }
- //header("location: http://jfoucher/gmail.php?start=1&max_num=$max_num&my_addr=$to&num=0");
- echo "</body></html>";
- }else{
- echo "Wrong address";
- }
- }
- if ($_GET['start']==1){
- $i=$_GET['num'];
- if($mess=fopen("tmp_mail/message$i.txt","r")){
- $buffer='';
- while (!feof($mess)){
- $buffer.=fread($mess,4096);
- }
- fclose($mess);
- list($subject,$headers,$message)=explode("\n{[]}\n",$buffer);
- $my_headers="User-Agent: GMail Uploader 0.2";
- ereg("(\nFrom: [^\n]*)",$headers,$head);
- $my_headers.=$head[1];
- ereg("(\nMIME-Version: [^\n]*)",$headers,$head);
- $my_headers.=$head[1];
- ereg("(\nMailing-List: [^\n]*)",$headers,$head);
- $my_headers.=$head[1];
- ereg("(\nPrecedence: [^\n]*)",$headers,$head);
- $my_headers.=$head[1];
- ereg("(\nList-Unsubscribe: [^\n]*)",$headers,$head);
- $my_headers.=$head[1];
- ereg("(\nDate: [^\n]*)",$headers,$head);
- $my_headers.=$head[1];
- ereg("(\nReply-To: [^\n]*)",$headers,$head);
- $my_headers.=$head[1];
- ereg("(\nContent-Type: [^\n]*)",$headers,$head);
- $my_headers.=$head[1];
- ereg("(\nContent-Transfer-Encoding: [^\n]*)",$headers,$head);
- $my_headers.=$head[1];
- ereg("(\nMessage-ID: [^\n]*)",$headers,$head);
- $my_headers.=$head[1];
- ereg("(\nReferences: [^\n]*)",$headers,$head);
- $my_headers.=$head[1];
- ereg("(\nIn-Reply-To: [^\n]*)",$headers,$head);
- $my_headers.=$head[1];
- //echo $my_headers;
- if (mail($_GET['my_addr'], $subject, $message, $my_headers)) {
- unlink("tmp_mail/message$i.txt");
- $time_spent=getmicrotime()-$time_before;
- $avg_time=($_GET['avg_time']*$i + $time_spent)/($i+1);
- ?>
- <html>
- <head>
- <?php
- $max=$_GET['max_num']-1
- if ($i<$max){
- ?>
- <meta http-equiv="Refresh" content="<?php echo $refresh; ?>;url=http://jfoucher/gmail.php?num=<?php echo ($i+1); ?>&my_addr=<?php echo $my_addr; ?>&max_num=<?php echo $_GET['max_num']; ?>&avg_time=<?php echo $avg_time; ?>&start=1">
- <?php
- }
- ?>
- </head>
- <body>
- <?php
- echo "<p>Message <strong>$i</strong> sent to: $to Subject: $subject</p>
- <p><a href=\"gmail.php?stop=ok&id=$i&I_Love8Maria=true&addr=$my_addr&max_num=".$_GET['max_num']."&avg_time=$avg_time\">Stop !</a><br />
- <a href=\"gmail_log.html\" target=\"_blank\">View log</a></p>";
- $left=$_GET['max_num']-$_GET['num'];
- $time=intval(($left * $refresh) + ($left * $avg_time));
- $jour=intval(date("j",$time))-1;
- $heure=intval(date("H",$time))-1;
- $date=$jour." days ".$heure." hours ".date("i",$time)." minutes";
- echo "<p>".$left." messages and ".$date." to go ($time seconds).</p>";
- $log=fopen("gmail_log.html","a+");
- fwrite($log,"<p>Message <strong>$i</strong> sent in $time_spent seconds ($subject)</p>\n");
- fclose($log);
- }else{
- echo "<html><body>";
- $log=fopen("gmail_log.html","a+");
- fwrite($log,"<p style='color:#c00;font-size:1.3em;'>Mail <strong>$i</strong> failed</p>\n");
- fclose($log);
- echo "<p style='color:#c00;font-size:1.3em;'>Message <strong>$i</strong> failed ($subject)</p>
- <p><a href=\"gmail.php?stop=ok&id=$i&max_num=".$_GET['max_num']."&addr=$my_addr&avg_time=$avg_time\">Stop !</a><br />
- <a href=\"gmail_log.html\" target=\"_blank\">View log</a></p>";
- }
- ?>
- </body>
- </html>
- <?php
- }else{
- echo "Could not open temporary email file";
- }
- }else{
- ?>
- <html>
- <body>
- <form action="gmail.php" method="post" enctype="multipart/form-data">
- <p>
- <label for="email">Email</label>
- <input type="text" value="@gmail.com" name="my_addr" id="my_addr" />
- </p>
- <p>
- <label for="fichier">mbox file</label>
- <input type="file" name="fichier" id="fichier" />
- </p>
- <input type="submit" name="action" id="action" value="go" />
- </form>
- <p><a href="gmail_log.html">View Log</a></p>
- </body>
- </html>
- <?php
- }
- ?>
-