$sql = "SELECT liste_id, liste_format, sender_email, liste_alias, limitevalidate,\n\t\t\t\t\tliste_name, form_url, return_email, liste_sig, use_cron, confirm_subscribe\n\t\t\t\tFROM " . LISTE_TABLE . "\n\t\t\t\tWHERE liste_id = " . $liste; if (!($result = $db->query($sql))) { trigger_error('Impossible d\'obtenir les données sur la liste', ERROR); } if ($listdata = $result->fetch()) { $wanewsletter = new Wanewsletter($listdata); $wanewsletter->message =& $message; $wanewsletter->do_action($action, $email, $format); } else { $message = $lang['Message']['Unknown_list']; } } else { $message = $lang['Message']['Invalid_action']; } } else { $wanewsletter = new Wanewsletter(); $wanewsletter->message =& $message; $wanewsletter->check_code($code); } } if (defined('IN_WA_FORM')) { // // On réactive le gestionnaire d'erreur précédent // @restore_error_handler(); // Si besoin, conversion du message vers le charset demandé if (!empty($textCharset)) { $message = iconv($lang['CHARSET'], $textCharset, $message); } echo nl2br($message); }
// nombre maximal d'emails dont le script doit s'occuper à chaque appel // // Initialisation de la classe mailer // $mailer = new Mailer(WA_ROOTDIR . '/language/email_' . $nl_config['language'] . '/'); if ($nl_config['use_smtp']) { $mailer->smtp_path = WAMAILER_DIR . '/'; $mailer->use_smtp($nl_config['smtp_host'], $nl_config['smtp_port'], $nl_config['smtp_user'], $nl_config['smtp_pass']); } $mailer->set_charset($lang['CHARSET']); $mailer->set_format(FORMAT_TEXTE); $mailer->set_from($listdata['sender_email'], unhtmlspecialchars($listdata['liste_name'])); if ($listdata['return_email'] != '') { $mailer->set_return_path($listdata['return_email']); } $wan = new Wanewsletter($listdata); $pop = new Pop(); $pop->connect($listdata['pop_host'], $listdata['pop_port'], $listdata['pop_user'], $listdata['pop_pass']); $cpt = 0; $total = $pop->stat_box(); $mail_box = $pop->list_mail(); foreach ($mail_box as $mail_id => $mail_size) { $headers = $pop->parse_headers($mail_id); if (!isset($headers['from']) || !preg_match('/^(?:"?([^"]*?)"?)?[ ]*(?:<)?([^> ]+)(?:>)?$/i', $headers['from'], $match)) { continue; } $pseudo = isset($match[1]) ? strip_tags(trim($match[1])) : ''; $email = trim($match[2]); if (!isset($headers['to']) || !stristr($headers['to'], $wan->liste_email)) { continue; }