El código del script es algo asi:
Código PHP:
if ($action == "") {
echo"<form action=\"admin.php?op=newsletterneu\" method=\"post\">
<h4>Area solo texto</h4><textarea rows=\"10\" cols=\"75\" name=\"bodytext\">$bodytext</textarea><br><br>
<h4>Area HTML</h4><textarea rows=\"20\" cols=\"75\" name=\"inhalt\"></textarea><br><br>
Asunto: <br><input type=\"text\" name=\"thema\"><br>
Remitente: <br><input type=\"text\" name=\"sender\"><br><br>
<input type=\"hidden\" name=\"datum\" value=\"$aktuellesdatum\">
<input type=\"text\" name=\"T1\" size=\"1\" maxlength=\"2\"> x Noticias<br>
<input type=\"down\" name=\"T2\" size=\"1\" maxlength=\"2\"> x Descargas<br>
<input type=\"forum\" name=\"T3\" size=\"1\" maxlength=\"2\"> x Tópicos del foro<br><br>
<IMG alt='' src='$nukeurl/modules/Newsletter/images/T1.gif' width=25 border=0 align='absmiddle'>
<input type=\"radio\" name=\"template\" value=\"1\" checked> Plantilla 1<br>
<IMG alt='' src='$nukeurl/modules/Newsletter/images/T2.gif' width=25 border=0 align='absmiddle'>
<input type=\"radio\" name=\"template\" value=\"2\"> Plantilla 2<br>
<IMG alt='' src='$nukeurl/modules/Newsletter/images/T3.gif' width=25 border=0 align='absmiddle'>
<input type=\"radio\" name=\"template\" value=\"3\"> Plantilla 3<br>
<IMG alt='' src='$nukeurl/modules/Newsletter/images/T4.gif' width=25 border=0 align='absmiddle'>
<input type=\"radio\" name=\"template\" value=\"4\"> Plantilla 4<br><br>";
}
............consultas a base de datos
if ($action == "send") {
$from_name = "Nombres";
$host_smtp = "smtp.host.com";
$user_smtp = "[email protected]";
$pass_smtp = "elpass";
include ("modules/Newsletter/templates/T$template.php");
......otras sentencias hasta el 6
if ($nltr==6) {
global $user_prefix, $sitename, $dbi, $nukeurl, $adminmail;
$email_from_mail = $adminmail;
$email_from_name = $from_name;
$email_betreff = "$thema";
require("includes/class.phpmailer.php");
$mail = new PHPMailer();
$mail->PluginDir = "includes/";
$mail->Mailer = "smtp";
$mail->Host = $host_smtp;
$mail->SMTPAuth = true;
$mail->Username = $user_smtp;
$mail->Password = $pass_smtp;
$mail->From = $email_from_mail;
$mail->FromName = $email_from_name;
$resultado = sql_query("SELECT email FROM nuke_newsletter where status = 0", $dbi);
if (mysql_num_rows($resultado) >= $contad){
if (!isset($_GET['contad'])){
$contad=0;
} else {
$contad=$_GET['contad'];
}
$result = sql_query("SELECT email FROM nuke_newsletter where status = 0 LIMIT $contad,50", $dbi); // or status = 2 or status = 4
while($row = sql_fetch_array($result, $dbi)) {
$mail->Subject = $email_betreff;
$mail->Body = $emailbody;
$mail->AltBody = $bodytext;
$mail->AddAddress($row["email"]);
if(!$mail->Send())
{
echo "<br>Problemas enviando correo electrónico a: " . $row["email"] . "";
echo "(" .$mail->ErrorInfo. ")<br>";
}
else
{
$mensaje="<br>Boletín enviado a: " . $row["email"] . "<br>";
echo $mensaje;
}
$mail->ClearAddresses();
}
header ("Location: " . $_SERVER['PHP_SELF'] . "?op=newsletterneu&action=send&nltr=$nltr&contad=" . ($contad + 50));
} else {
echo "<br><br>El boletín fué enviado a toda la Lista de Correo. Esto es lo que será visto:<br>";
echo "<br><b>Eviado por: </b>$sender <br>
<b>Acerca: </b>$email_betreff<br>";
echo $emailbody;
$msg_mail_arch = $emailbody;
$fichi = fopen("modules/Newsletter/archives/".date(Ymd).".html", "a");
fwrite($fichi,$msg_mail_arch."<br>");
fclose($fichi);
}
} else {
echo "<br><hr><font color=red>El boletín no fué enviado a la Lista de Correo</font><br>";
}
}
Entonces me da estos errores al finalizar las secuencias:
Warning: main(modules/Newsletter/templates/T.php): failed to open stream: No such file or directory in c:\appserv\www\web\admin\modules\newsletterneu.php on line 299
El script completo es demasiado largo asi ke lo he resumido, en realidad trabaja con un formulario en post que me pasa todas las variables, el problema es al enviar cada 50 mails, alli ocurre que no pasa las variables como ves T.php por ejemplo, deberia ser T(número).php, como ocurre con las variables $sender, $bodytext, $emailbody, que son las que vienen desde el formulario y están fuera del if()