in pratica avrei corretto il codice cosi ma di e-mail non ne arrivano seppure le query siano corrette, dove sbaglio?
Codice PHP:
<?php
$query_eventi = "SELECT id, d, m, y, title, text FROM calendar_mssgs WHERE concat_ws('-',y,lpad(m,2,0),lpad(d,2,0)) < curdate() + interval 3 day AND concat_ws('-',y,lpad(m,2,0),lpad(d,2,0)) > curdate()";
$eventi = mysql_query($query_eventi, $server) or die(mysql_error());
$row_eventi = mysql_fetch_assoc($eventi); $totalRows_eventi = mysql_num_rows($eventi); //da questa query ricavo gli eventi che si verificheranno nei prossimi uno/due giorni
$evento = $row_eventi['evento']; //da questa query ricavo i nomi di coloro che non hanno ancora segnalato la loro presenza a un evento
if ($totalRows_invisibili > 0) { //se ci sono persone che non hanno ancora segnalato a loro presenza allora....
require("class.phpmailer.php");
$colname_invisibili = "-1";
if (isset($_SESSION['$evento'])) { $colname_invisibili = $_SESSION['$evento']; }
$query_invisibili = sprintf("SELECT username FROM calendar_users WHERE hash NOT IN (SELECT username FROM partecipanti WHERE evento = %s)", GetSQLValueString($colname_invisibili, "text"));
$invisibili = mysql_query($query_invisibili, $server) or die(mysql_error());
while (list($destinatario) = mysql_fetch_assoc($invisibili));
{
$mail = new PHPMailer(); $mail->SetLanguage("it","./"); $mail->IsSendmail(); // send via SMTP
$mail->Host = "mail.xxxxxxxxxxxx.it"; // SMTP servers
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "segreteria@xxxxxxx.it"; // SMTP username
$mail->Password = "xxxxxxxxxx"; // SMTP password
$mail->From = "calendario eventi";
$mail->FromName = "Gruppo xxxxx xxxx xxxxxxx ";
$mail->AddAddress($destinatario);
$mail->WordWrap = 100; // set word wrap $mail->IsHTML(false); // send as HTML
$mail->Subject = "ATTENZIONE! DEVI CONFERMARE LA TUA PRESENZA AD UN EVENTO per il giorno $day/$month/$year ";
$colname_Recordset2 = "-1";
if (isset($destinatario)) { $colname_Recordset2 = $destinatario; }
$query_Recordset2 = sprintf("SELECT uid, username, fname, lname, hash FROM calendar_users WHERE username = %s", GetSQLValueString($colname_Recordset2, "text")); $Recordset2 = mysql_query($query_Recordset2, $server) or die(mysql_error());
$row_Recordset2 = mysql_fetch_assoc($Recordset2);
$totalRows_Recordset2 = mysql_num_rows($Recordset2); //determino il codice id dell utente indispensabile per confermare la presenza tramite il link spedito via email e va infatti a cercare la corrispondenza tra indirizzo destinatario e username (email) nel database per ricavare il codice id
$mail->Body = "Ad oggi non ci risulta ancora che tu abbia segnalato al gruppo la tua presenza/assenza al seguente evento: ".$row_eventi['title']." per il giorno ".$row_eventi['d']."/".$row_eventi['m']."/".$row_eventi['y']."
".
$mail->AltBody = $row_eventi['text']."
"."Provvedi a confermare la tua presenza cliccando <a href=\"http://www.xxxxxxxxxxxx.it/areasoci/presente.php?id=".$row_Recordset2['hash']."&evento=".$row_eventi['id']."&presenza=1\"> qui </a>"."altrimenti clicca su <a href=\"http://www.xxxxxxxxx.it/areasoci/presente.php?id=".$row_Recordset2['hash']."&evento=".$row_eventi['id']."&presenza=0\"> purtroppo non ci sarò </a>"." Diversamente continuerai a ricevere questa e-mail ogni due ore sino al giorno dell evento!";
$mail->Send();
}
}
?>