Salve,
non capisco dove sbaglio:in pratica voglio che il server mandi una serie di email in background dopo l'invio del form.
Da quanto vedo non riesco nemmeno a cancellaree il file temporaneo con le informazioni.
Questa è la struttura:
codice:
Main
Swift
config
tmpinfo.txt
admin
sendmail.php
Già che ci sono esiste un metodo per visualizzare gli errori del cli?
Questo è codice:
Codice PHP:
<?php
if(isset($_POST['sendmail'])){
if($_POST['shtb']=='no'){
$c=count($_POST['semail']);
$c2=count($mailist);
for($i=0;$i<$c;$i++){
if(is_int($_POST['semail'][$i]))
$mailist[$i]=$mailist[$_POST['semail'][$i]];
}
for($i=$c;$i<$c2;$i++)
unset($mailist[$i]);
}
$bod=normalize_str(rtrim(preg_replace('/\s+/',' ',$_POST['message'])));
$footer=normalize_str(rtrim(preg_replace('/\s+/',' ',$_POST['footerfn'])));
$manip="<html><body>".$bod.'<div id="footer" style="display:block;clear:both;width:100%;position:relative;margin:10px 0;border-top:1px solid #000">'.$footer;
file_put_contents('../config/tmpinfo.txt',$manip."\n".serialize($mailist)."\n".$_POST['sender']."\n".$_POST['object']."\n".$var[11]."\n".$var[12]."\n".$var[13]."\n".$var[14]."\n".$var[15]);
chmod('../config/tmpinfo.txt',0644);
$ex="php -f ".rtrim(dirname(__FILE__))."/sendmail.php";
if (substr(php_uname(), 0, 7) == "Windows")
pclose(popen("start /B ". $ex, "r"));
else
shell_exec($ex . " > /dev/null &");
}
?>
e questo è lo script:
Codice PHP:
<?php
require_once dirname(dirname(__FILE__)).'/Swift/lib/swift_required.php';
$readfile=dirname(dirname(__FILE__)).'/config/tmpinfo.txt';
$info=file($readfile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
unlink($readfile);
$manip=$info[0];
$mailist=unserialize($info[1]);
$message = Swift_Message::newInstance();
$message->setFrom($info[2]);
$message->setSubject($info[3]);
$message->setContentType('text/html; charset=ISO-8859-1');
$transport = Swift_SendmailTransport::newInstance('/usr/sbin/sendmail -t');
$mailer = Swift_Mailer::newInstance($transport);
if(isset($info[7]) && isset($info[8]) && $info[7]!=null && $info[8]!=null) $mailer->registerPlugin(new Swift_Plugins_AntiFloodPlugin($info[7], $info[8]));
$count=count($mailist);
if(rtrim($info[4])=='yes'){
for($i=0;$i< $count;$i++){
$unlink="
Click [url='http://".$info[5].$info[6]."unsubscribe.php?mail=".$mailist[$i]."&id=".(($i+1)*8)."']here[/url] if you want to unsubscribe</p></div></body></html>";
$message->setBody($manip.$unlink);
$message->setTo($mailist[$i]);
$mailer->send($message);
}
}else{
file_put_contents('out.txt','no');
$manip=$manip."</div></body></html>";
$message->setBody($manip);
for($i=0;$i< $count;$i++){
$message->setTo($mailist[$i]);
$mailer->send($message);
}
}
?>
Grazie