swiftmailer plugin logger
Posté : 28 juin 2012, 23:17
Bonjour
,
J'ai créer un logiciel de gestion de salle de spectacles et dans lequel il y a un module de mailing au spectateurs.
J'ai un fichier qui envoie les mails en utilisant la bibliotheque swiftmailer.
Les envoies se font via une requête mysql pour récupérer les adresses des spectateurs.
Dans le code j'appelle le plugin Logger de swiftmailer. Il est censé créer un log avec la liste des tâches effectuées "echo $logger->dump();"
En tout cas c'est ce que j'ai cru comprendre. http://swiftmailer.org/docs/plugins.html
Voilà le code de la page
Si ce n'est pas ça, comment faire pour y parvenir.
A bientôt
J'ai créer un logiciel de gestion de salle de spectacles et dans lequel il y a un module de mailing au spectateurs.
J'ai un fichier qui envoie les mails en utilisant la bibliotheque swiftmailer.
Les envoies se font via une requête mysql pour récupérer les adresses des spectateurs.
Dans le code j'appelle le plugin Logger de swiftmailer. Il est censé créer un log avec la liste des tâches effectuées "echo $logger->dump();"
En tout cas c'est ce que j'ai cru comprendre. http://swiftmailer.org/docs/plugins.html
Voilà le code de la page
<?php
include_once("include/config/common.php");
require_once 'include/lib/swift_required.php';
//on recupère le titre du message
$titre=isset($_POST['titre'])?$_POST['titre']:"";
$titre= stripslashes($titre);
//on récupère le message
$message=isset($_POST['message'])?$_POST['message']:"";
$message = stripslashes($message);
//creation du message html
$body = "<html><head> </ head><body>";
$body2 = "</body></html>";
$message = $body.$message.$body2;
$message_affiche=$message;
// Creation du message
$message = Swift_Message::newInstance()
->setSubject($titre)
->setFrom(array($mail => $entrep_nom))
->setBody($message, 'text/html')
->setReturnPath($mail)
->setCharset('iso-8859-15');
;
//Mail
$transport = Swift_MailTransport::newInstance();
//Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);
?>
<table width="760" border="0" class="page" align="center">
<tr>
<td class="page" align="center">
<h3>Envoyé à</h3>
</td>
</tr>
<tr>
<td>
<?php
$sql2 = "SELECT DISTINCT mail, nom FROM ".$tblpref."client WHERE mail!= '' AND actif='y' GROUP BY mail";
$req = mysql_query($sql2) or die('Erreur SQL !<br>'.$sql2.'<br>'.mysql_error());
$failedRecipients = array();
$numSent = 0;
$to = array();
while($data = mysql_fetch_array($req))
{
$to[$data['mail']]=$data['nom'];
$nom = $data['nom'];
$a = $data['mail'];
$nom_html= addslashes($nom);
echo " $a -> $nom_html | ";
}
// Utilisation du plugin anti-inondation réglé à 40 mails par lot
//$mailer->registerPlugin(new Swift_Plugins_AntiFloodPlugin(40));
//Utilisation du plugin anti-inondation réglé à 40 mails par lot et entre chaque envois (30 secs)
$mailer->registerPlugin(new Swift_Plugins_AntiFloodPlugin(40, 20));
// Or to use the Echo Logger
$logger = new Swift_Plugins_Loggers_EchoLogger();
$mailer->registerPlugin(new Swift_Plugins_LoggerPlugin($logger));
//envois des mails
foreach ($to as $address => $name)
{
if (is_int($address)) {
$message->setTo($name);
} else {
$message->setTo(array($address => $name));
}
$numSent += $mailer->send($message, $failedRecipients);
}
?>
</td>
</tr>
<tr>
<td>
<table class="page" align="center">
<tr>
<td><?php printf(" %d messages ont été envoyés\n", $numSent);?> <br />Titre du message: <?php echo $titre ;?></td>
</tr>
<tr>
<td> Adresse utilisée:<?php echo $mail;?></td>
</tr>
<tr>
<td>Corps du message:<br><?php echo $message_affiche;?></td>
</tr>
<tr><td><?php echo $logger->dump(); ?></td></tr>
</table>
</td>
</tr>
</table>
Vers 5 lignes avant la fin, je comprend que "echo $logger->dump();" doit m'afficher le journal non?Si ce n'est pas ça, comment faire pour y parvenir.
A bientôt