Newsletter
BBcode + envoi en nombre
Support Général
sch Membre non connecté
Booster Fusée
-
Booster Fusée
- Voir le profil du membre sch
- Inscrit le : 28/09/2010
- Site internet
- Groupes :
Est-ce que le développeur du module Newsletter a eu le temps de ce pencher sur celui-ci afin de voir pourquoi il était impossible de créer une NL en BBcode d'une part, et comment il était possible de faire des envois en nombre d'autre par. Car, aujourd'hui, quand on fait une NL en BBcode, on retrouve le même BBcode dans le message que l'on reçoit sur son client de messagerie ; et il est impossible d'envoyer la NL à plus d'une centaine d'abonnés.
A défaut, et en attendant la MAJ du module dans la prochaine version de pbst, quelqu'un saurait-il comment on peu contourner ce problème de BBcode et d'envoi en nombre ? Car j'ai 1000 abonnés à ma NL et actuellement je ne peux plus l'envoyer.
Au plaisir de vous lire.
Bien cordialement.
Sébastien Chauveau : journaliste, producteur, réalisateur
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Je suis entrain de refaire le module newsletter sur la 3.1, entre temps test ce fichier et dis moi :
/newsletter/newsletter_service.class.php
Code PHP :
<?php /*################################################## * newsletter_service.class.php * ------------------- * begin : July 07, 2007 * copyright : (C) 2007 Sautel Benoit * email : ben.popeye@phpboost.com * * ################################################### * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ###################################################*/ if (defined('PHPBOOST') !== true) exit; import('content/parser/content_second_parser'); import('io/mail'); class NewsletterService { function send_html($mail_object, $message, $email_test = '') { global $_NEWSLETTER_CONFIG, $LANG, $Sql; $error_mailing_list = array(); $message = stripslashes($message); $message = str_replace('"../', '"' . HOST . DIR . '/' , $message); $message = NewsletterService::clean_html($message); $message = ContentSecondParser::export_html_text($message); if ($email_test == '') // envoi d?finitif { $nbr = $Sql->count_table('newsletter', __LINE__, __FILE__); //On enregistre dans les archives la newsletter envoy?e $Sql->query_inject("INSERT INTO " . PREFIX . "newsletter_arch (title,message,timestamp,type,nbr) VALUES('" . addslashes($mail_object) . "','" . addslashes($message) . "', '" . time() . "', 'html', '" . $nbr . "')", __LINE__, __FILE__); $mailing_list = array(); $result = $Sql->query_while("SELECT id, mail FROM " . PREFIX . "newsletter ORDER BY id", __LINE__, __FILE__); while ($row = $Sql->fetch_assoc($result)) { $mailing_list[] = array($row['id'], $row['mail']); } $Sql->query_close($result); $mail_sender = new Mail(); $mail_sender->set_sender($_NEWSLETTER_CONFIG['sender_mail']); $mail_sender->set_mime(MIME_FORMAT_HTML); $mail_sender->set_object($mail_object); foreach ($mailing_list as $array_mail) { $mail_sender->set_recipients($array_mail[1]); $mail_sender->set_content(str_replace('[UNSUBSCRIBE_LINK]', ' <a href="' . HOST . DIR . '/newsletter/newsletter.php?id=' . $array_mail[0] . '">' . $LANG['newsletter_unscubscribe_text'] . '</a> ', $message)); if (!$mail_sender->send()) { $error_mailing_list[] = $array_mail[1]; } } return $error_mailing_list; } else { $mail_sender = new Mail(); $mail_sender->set_sender($_NEWSLETTER_CONFIG['sender_mail']); $mail_sender->set_mime(MIME_FORMAT_HTML); $mail_sender->set_recipients($email_test); $mail_sender->set_content($message); $mail_sender->set_object($mail_object); $mail_sender->send(); return true; } } function send_bbcode($mail_object, $message, $email_test = '') { global $_NEWSLETTER_CONFIG, $LANG, $Sql; $error_mailing_list = array(); $message = stripslashes(strparse(addslashes(second_parse($message)))); $message = ContentSecondParser::export_html_text($message); $mail_contents = '<html> <head><title>' . $mail_object . '</title></head><body>'; $mail_contents .= $message; if ($email_test == '') // envoi d?finitif { $nbr = $Sql->count_table('newsletter', __LINE__, __FILE__); //On enregistre dans les archives la newsletter envoy?e $Sql->query_inject("INSERT INTO " . PREFIX . "newsletter_arch (title,message,timestamp,type,nbr) VALUES('" . addslashes($mail_object) . "', '" . addslashes($message) . "', '" . time() . "', 'bbcode', '" . $nbr . "')", __LINE__, __FILE__); $mailing_list = array(); $result = $Sql->query_while("SELECT id, mail FROM " . PREFIX . "newsletter ORDER BY id", __LINE__, __FILE__); while ($row = $Sql->fetch_assoc($result)) { $mailing_list[] = array($row['id'], $row['mail']); } $Sql->query_close($result); $mail_sender = new Mail(); $mail_sender->set_sender($_NEWSLETTER_CONFIG['sender_mail']); $mail_sender->set_mime(MIME_FORMAT_HTML); $mail_sender->set_object($mail_object); foreach ($mailing_list as $array_mail) { $mail_sender->set_recipients($array_mail[1]); $mail_contents_end = ' <a href="' . HOST . DIR . '/newsletter/newsletter.php?id=' . $array_mail[0] . '">' . $LANG['newsletter_unscubscribe_text'] . '</a></body></html>'; $mail_sender->set_content($mail_contents . $mail_contents_end); if (!$mail_sender->send()) { $error_mailing_list[] = $array_mail[1]; } } return $error_mailing_list; } else { $mail_sender = new Mail(); $mail_sender->set_sender($_NEWSLETTER_CONFIG['sender_mail']); $mail_sender->set_mime(MIME_FORMAT_HTML); $mail_sender->set_recipients($email_test); $mail_sender->set_content($mail_contents . '</body></html>'); $mail_sender->set_object($mail_object); $mail_sender->send(); return true; } } function send_text($mail_object, $message, $email_test = '') { global $_NEWSLETTER_CONFIG, $LANG, $Sql; $error_mailing_list = array(); $header = 'From: ' . $_NEWSLETTER_CONFIG['newsletter_name'] . ' <' . $_NEWSLETTER_CONFIG['sender_mail'] . '>' . "rn"; $header .= 'Reply-To: ' . $_NEWSLETTER_CONFIG['sender_mail'] . "rn"; if ($email_test == '') // envoi d?finitif { $nbr = $Sql->count_table('newsletter', __LINE__, __FILE__); //On enregistre dans les archives la newsletter envoy?e $Sql->query_inject("INSERT INTO " . PREFIX . "newsletter_arch (title,message,timestamp,type,nbr) VALUES('" . strprotect($mail_object, HTML_NO_PROTECT, ADDSLASHES_FORCE) . "', '" . strprotect($message, HTML_NO_PROTECT, ADDSLASHES_FORCE) . "', '" . time() . "', 'text', '" . $nbr . "')", __LINE__, __FILE__); $mailing_list = array(); $result = $Sql->query_while("SELECT id, mail FROM " . PREFIX . "newsletter ORDER BY id", __LINE__, __FILE__); while ($row = $Sql->fetch_assoc($result)) { $mailing_list[] = array($row['id'], $row['mail']); } $Sql->query_close($result); $mail_sender = new Mail(); $mail_sender->set_sender($_NEWSLETTER_CONFIG['sender_mail']); $mail_sender->set_mime(MIME_FORMAT_TEXT); $mail_sender->set_object($mail_object); foreach ($mailing_list as $array_mail) { $mail_sender->set_recipients($array_mail[1]); $mail_sender->set_content($message . "nn" . $LANG['newsletter_unscubscribe_text'] . HOST . DIR . '/newsletter/newsletter.php?id=' . $array_mail[0]); if (!$mail_sender->send()) { $error_mailing_list[] = $array_mail[1]; } } return $error_mailing_list; } else { $mail_sender = new Mail(); $mail_sender->set_sender($_NEWSLETTER_CONFIG['sender_mail']); $mail_sender->set_mime(MIME_FORMAT_HTML); $mail_sender->set_recipients($email_test); $mail_sender->set_content($message); $mail_sender->set_object($mail_object); $mail_sender->send(); return true; } } //Fonction qui remplace les caract?res sp?ciaux par leurs entit?s en conservant les balises html function clean_html($text) { $text = htmlentities($text, ENT_NOQUOTES); $text = str_replace(array('&', '<', '>'), array('&', '<', '>'), $text); return $text; } } ?>
Pour le "plus d'une centaine d'utilisateurs" pourquoi tu n'arrive pas ? A cause du traitement ?
sch Membre non connecté
Booster Fusée
-
Booster Fusée
- Voir le profil du membre sch
- Inscrit le : 28/09/2010
- Site internet
- Groupes :
Je teste et te tiens au courant.
Ca doit faire quoi en principe ?
Non, pour le plus d'une centaine d'abonnés, c'est qu'il me semblait que le script ne pouvait pas envoyer plus de 100 NL tout simplement. C'est ce que j'avais cru comprendre en tous les cas. Maintenant, s'il peut envoyer autant de NL que l'on veut, alors ça roule !!! Peut-être avais-je mal compris...
Cordialement.
SCH
Sébastien Chauveau : journaliste, producteur, réalisateur
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Bah enfaite ça va dépendre de ton serveur et de sa configuration. Mais un serveur mutualisé n'est pas fait pour envoyer plus des milliers de mails.
sch Membre non connecté
Booster Fusée
-
Booster Fusée
- Voir le profil du membre sch
- Inscrit le : 28/09/2010
- Site internet
- Groupes :
Voici le petit texte de test que je me suis envoyé :
"Je fais un test pour l'envoi de la newsletter.
J'espère qu'elle arrivera."
Sinon, autre remarque, attention qui n'est pas du tout celle d'un développeur mais de quelqu'un qui ne se contente que d'utiliser : pourquoi, à la fin du fichier, il y a deux fois "?>". C'est sûrement normal, mais je te le signale au cas où ce serait une erreur.
Après, donc, penses-tu qu'avec le scfript je puisse envoyer ma NL à mes 1000 abonnés ? Le script prévoit-il un nombre d'envoi par heure, ? Ou à moins que ce ne soit un autre système qui gère les envois.
Au plaisir de te lire. Et déjà bravo pour le temps passé et le travail accompli.
Cordialement.
Sébastien Chauveau : journaliste, producteur, réalisateur
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Code PHP :
<?php /*################################################## * newsletter_service.class.php * ------------------- * begin : July 07, 2007 * copyright : (C) 2007 Sautel Benoit * email : ben.popeye@phpboost.com * * ################################################### * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ###################################################*/ if (defined('PHPBOOST') !== true) exit; import('content/parser/content_second_parser'); import('io/mail'); class NewsletterService { function send_html($mail_object, $message, $email_test = '') { global $_NEWSLETTER_CONFIG, $LANG, $Sql; $error_mailing_list = array(); $message = stripslashes($message); $message = str_replace('"../', '"' . HOST . DIR . '/' , $message); $message = NewsletterService::clean_html($message); $message = ContentSecondParser::export_html_text($message); if ($email_test == '') // envoi d?finitif { $nbr = $Sql->count_table('newsletter', __LINE__, __FILE__); //On enregistre dans les archives la newsletter envoy?e $Sql->query_inject("INSERT INTO " . PREFIX . "newsletter_arch (title,message,timestamp,type,nbr) VALUES('" . addslashes($mail_object) . "','" . addslashes($message) . "', '" . time() . "', 'html', '" . $nbr . "')", __LINE__, __FILE__); $mailing_list = array(); $result = $Sql->query_while("SELECT id, mail FROM " . PREFIX . "newsletter ORDER BY id", __LINE__, __FILE__); while ($row = $Sql->fetch_assoc($result)) { $mailing_list[] = array($row['id'], $row['mail']); } $Sql->query_close($result); $mail_sender = new Mail(); $mail_sender->set_sender($_NEWSLETTER_CONFIG['sender_mail']); $mail_sender->set_mime(MIME_FORMAT_HTML); $mail_sender->set_object($mail_object); foreach ($mailing_list as $array_mail) { $mail_sender->set_recipients($array_mail[1]); $mail_sender->set_content(str_replace('[UNSUBSCRIBE_LINK]', ' <a href="' . HOST . DIR . '/newsletter/newsletter.php?id=' . $array_mail[0] . '">' . $LANG['newsletter_unscubscribe_text'] . '</a> ', $message)); if (!$mail_sender->send()) { $error_mailing_list[] = $array_mail[1]; } } return $error_mailing_list; } else { $mail_sender = new Mail(); $mail_sender->set_sender($_NEWSLETTER_CONFIG['sender_mail']); $mail_sender->set_mime(MIME_FORMAT_HTML); $mail_sender->set_recipients($email_test); $mail_sender->set_content($message); $mail_sender->set_object($mail_object); $mail_sender->send(); return true; } } function send_bbcode($mail_object, $message, $email_test = '') { global $_NEWSLETTER_CONFIG, $LANG, $Sql; $error_mailing_list = array(); $message = stripslashes(second_parse($message)); $message = ContentSecondParser::export_html_text($message); $mail_contents = '<html> <head><title>' . $mail_object . '</title></head><body>'; $mail_contents .= $message; if ($email_test == '') // envoi d?finitif { $nbr = $Sql->count_table('newsletter', __LINE__, __FILE__); //On enregistre dans les archives la newsletter envoy?e $Sql->query_inject("INSERT INTO " . PREFIX . "newsletter_arch (title,message,timestamp,type,nbr) VALUES('" . addslashes($mail_object) . "', '" . addslashes($message) . "', '" . time() . "', 'bbcode', '" . $nbr . "')", __LINE__, __FILE__); $mailing_list = array(); $result = $Sql->query_while("SELECT id, mail FROM " . PREFIX . "newsletter ORDER BY id", __LINE__, __FILE__); while ($row = $Sql->fetch_assoc($result)) { $mailing_list[] = array($row['id'], $row['mail']); } $Sql->query_close($result); $mail_sender = new Mail(); $mail_sender->set_sender($_NEWSLETTER_CONFIG['sender_mail']); $mail_sender->set_mime(MIME_FORMAT_HTML); $mail_sender->set_object($mail_object); foreach ($mailing_list as $array_mail) { $mail_sender->set_recipients($array_mail[1]); $mail_contents_end = ' <a href="' . HOST . DIR . '/newsletter/newsletter.php?id=' . $array_mail[0] . '">' . $LANG['newsletter_unscubscribe_text'] . '</a></body></html>'; $mail_sender->set_content($mail_contents . $mail_contents_end); if (!$mail_sender->send()) { $error_mailing_list[] = $array_mail[1]; } } return $error_mailing_list; } else { $mail_sender = new Mail(); $mail_sender->set_sender($_NEWSLETTER_CONFIG['sender_mail']); $mail_sender->set_mime(MIME_FORMAT_HTML); $mail_sender->set_recipients($email_test); $mail_sender->set_content($mail_contents . '</body></html>'); $mail_sender->set_object($mail_object); $mail_sender->send(); return true; } } function send_text($mail_object, $message, $email_test = '') { global $_NEWSLETTER_CONFIG, $LANG, $Sql; $error_mailing_list = array(); $header = 'From: ' . $_NEWSLETTER_CONFIG['newsletter_name'] . ' <' . $_NEWSLETTER_CONFIG['sender_mail'] . '>' . "rn"; $header .= 'Reply-To: ' . $_NEWSLETTER_CONFIG['sender_mail'] . "rn"; if ($email_test == '') // envoi d?finitif { $nbr = $Sql->count_table('newsletter', __LINE__, __FILE__); //On enregistre dans les archives la newsletter envoy?e $Sql->query_inject("INSERT INTO " . PREFIX . "newsletter_arch (title,message,timestamp,type,nbr) VALUES('" . strprotect($mail_object, HTML_NO_PROTECT, ADDSLASHES_FORCE) . "', '" . strprotect($message, HTML_NO_PROTECT, ADDSLASHES_FORCE) . "', '" . time() . "', 'text', '" . $nbr . "')", __LINE__, __FILE__); $mailing_list = array(); $result = $Sql->query_while("SELECT id, mail FROM " . PREFIX . "newsletter ORDER BY id", __LINE__, __FILE__); while ($row = $Sql->fetch_assoc($result)) { $mailing_list[] = array($row['id'], $row['mail']); } $Sql->query_close($result); $mail_sender = new Mail(); $mail_sender->set_sender($_NEWSLETTER_CONFIG['sender_mail']); $mail_sender->set_mime(MIME_FORMAT_TEXT); $mail_sender->set_object($mail_object); foreach ($mailing_list as $array_mail) { $mail_sender->set_recipients($array_mail[1]); $mail_sender->set_content($message . "nn" . $LANG['newsletter_unscubscribe_text'] . HOST . DIR . '/newsletter/newsletter.php?id=' . $array_mail[0]); if (!$mail_sender->send()) { $error_mailing_list[] = $array_mail[1]; } } return $error_mailing_list; } else { $mail_sender = new Mail(); $mail_sender->set_sender($_NEWSLETTER_CONFIG['sender_mail']); $mail_sender->set_mime(MIME_FORMAT_HTML); $mail_sender->set_recipients($email_test); $mail_sender->set_content($message); $mail_sender->set_object($mail_object); $mail_sender->send(); return true; } } //Fonction qui remplace les caract?res sp?ciaux par leurs entit?s en conservant les balises html function clean_html($text) { $text = htmlentities($text, ENT_NOQUOTES); $text = str_replace(array('&', '<', '>'), array('&', '<', '>'), $text); return $text; } } ?>
Pour le ?> il faut que remplace tout ton fichier par celui que je t'ai donné, tu as dû oublié de tout sélectionner. Supprime le si il y en as deux.
Pour ta NL, le script ne fait que les envoyer, en aucun cas il prévoit une planification.
sch Membre non connecté
Booster Fusée
-
Booster Fusée
- Voir le profil du membre sch
- Inscrit le : 28/09/2010
- Site internet
- Groupes :
Sébastien Chauveau : journaliste, producteur, réalisateur
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement

Code PHP :
<?php /*################################################## * newsletter_service.class.php * ------------------- * begin : July 07, 2007 * copyright : (C) 2007 Sautel Benoit * email : ben.popeye@phpboost.com * * ################################################### * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ###################################################*/ if (defined('PHPBOOST') !== true) exit; import('content/parser/content_second_parser'); import('io/mail'); class NewsletterService { function send_html($mail_object, $message, $email_test = '') { global $_NEWSLETTER_CONFIG, $LANG, $Sql; $error_mailing_list = array(); $message = stripslashes($message); $message = str_replace('"../', '"' . HOST . DIR . '/' , $message); $message = NewsletterService::clean_html($message); $message = ContentSecondParser::export_html_text($message); if ($email_test == '') // envoi d?finitif { $nbr = $Sql->count_table('newsletter', __LINE__, __FILE__); //On enregistre dans les archives la newsletter envoy?e $Sql->query_inject("INSERT INTO " . PREFIX . "newsletter_arch (title,message,timestamp,type,nbr) VALUES('" . addslashes($mail_object) . "','" . addslashes($message) . "', '" . time() . "', 'html', '" . $nbr . "')", __LINE__, __FILE__); $mailing_list = array(); $result = $Sql->query_while("SELECT id, mail FROM " . PREFIX . "newsletter ORDER BY id", __LINE__, __FILE__); while ($row = $Sql->fetch_assoc($result)) { $mailing_list[] = array($row['id'], $row['mail']); } $Sql->query_close($result); $mail_sender = new Mail(); $mail_sender->set_sender($_NEWSLETTER_CONFIG['sender_mail']); $mail_sender->set_mime(MIME_FORMAT_HTML); $mail_sender->set_object($mail_object); foreach ($mailing_list as $array_mail) { $mail_sender->set_recipients($array_mail[1]); $mail_sender->set_content(str_replace('[UNSUBSCRIBE_LINK]', ' <a href="' . HOST . DIR . '/newsletter/newsletter.php?id=' . $array_mail[0] . '">' . $LANG['newsletter_unscubscribe_text'] . '</a> ', $message)); if (!$mail_sender->send()) { $error_mailing_list[] = $array_mail[1]; } } return $error_mailing_list; } else { $mail_sender = new Mail(); $mail_sender->set_sender($_NEWSLETTER_CONFIG['sender_mail']); $mail_sender->set_mime(MIME_FORMAT_HTML); $mail_sender->set_recipients($email_test); $mail_sender->set_content($message); $mail_sender->set_object($mail_object); $mail_sender->send(); return true; } } function send_bbcode($mail_object, $message, $email_test = '') { global $_NEWSLETTER_CONFIG, $LANG, $Sql; $error_mailing_list = array(); $message = stripslashes(strparse(second_parse($message))); $message = ContentSecondParser::export_html_text($message); $mail_contents = '<html> <head><title>' . $mail_object . '</title></head><body>'; $mail_contents .= $message; if ($email_test == '') // envoi d?finitif { $nbr = $Sql->count_table('newsletter', __LINE__, __FILE__); //On enregistre dans les archives la newsletter envoy?e $Sql->query_inject("INSERT INTO " . PREFIX . "newsletter_arch (title,message,timestamp,type,nbr) VALUES('" . addslashes($mail_object) . "', '" . addslashes($message) . "', '" . time() . "', 'bbcode', '" . $nbr . "')", __LINE__, __FILE__); $mailing_list = array(); $result = $Sql->query_while("SELECT id, mail FROM " . PREFIX . "newsletter ORDER BY id", __LINE__, __FILE__); while ($row = $Sql->fetch_assoc($result)) { $mailing_list[] = array($row['id'], $row['mail']); } $Sql->query_close($result); $mail_sender = new Mail(); $mail_sender->set_sender($_NEWSLETTER_CONFIG['sender_mail']); $mail_sender->set_mime(MIME_FORMAT_HTML); $mail_sender->set_object($mail_object); foreach ($mailing_list as $array_mail) { $mail_sender->set_recipients($array_mail[1]); $mail_contents_end = ' <a href="' . HOST . DIR . '/newsletter/newsletter.php?id=' . $array_mail[0] . '">' . $LANG['newsletter_unscubscribe_text'] . '</a></body></html>'; $mail_sender->set_content($mail_contents . $mail_contents_end); if (!$mail_sender->send()) { $error_mailing_list[] = $array_mail[1]; } } return $error_mailing_list; } else { $mail_sender = new Mail(); $mail_sender->set_sender($_NEWSLETTER_CONFIG['sender_mail']); $mail_sender->set_mime(MIME_FORMAT_HTML); $mail_sender->set_recipients($email_test); $mail_sender->set_content($mail_contents . '</body></html>'); $mail_sender->set_object($mail_object); $mail_sender->send(); return true; } } function send_text($mail_object, $message, $email_test = '') { global $_NEWSLETTER_CONFIG, $LANG, $Sql; $error_mailing_list = array(); $header = 'From: ' . $_NEWSLETTER_CONFIG['newsletter_name'] . ' <' . $_NEWSLETTER_CONFIG['sender_mail'] . '>' . "rn"; $header .= 'Reply-To: ' . $_NEWSLETTER_CONFIG['sender_mail'] . "rn"; if ($email_test == '') // envoi d?finitif { $nbr = $Sql->count_table('newsletter', __LINE__, __FILE__); //On enregistre dans les archives la newsletter envoy?e $Sql->query_inject("INSERT INTO " . PREFIX . "newsletter_arch (title,message,timestamp,type,nbr) VALUES('" . strprotect($mail_object, HTML_NO_PROTECT, ADDSLASHES_FORCE) . "', '" . strprotect($message, HTML_NO_PROTECT, ADDSLASHES_FORCE) . "', '" . time() . "', 'text', '" . $nbr . "')", __LINE__, __FILE__); $mailing_list = array(); $result = $Sql->query_while("SELECT id, mail FROM " . PREFIX . "newsletter ORDER BY id", __LINE__, __FILE__); while ($row = $Sql->fetch_assoc($result)) { $mailing_list[] = array($row['id'], $row['mail']); } $Sql->query_close($result); $mail_sender = new Mail(); $mail_sender->set_sender($_NEWSLETTER_CONFIG['sender_mail']); $mail_sender->set_mime(MIME_FORMAT_TEXT); $mail_sender->set_object($mail_object); foreach ($mailing_list as $array_mail) { $mail_sender->set_recipients($array_mail[1]); $mail_sender->set_content($message . "nn" . $LANG['newsletter_unscubscribe_text'] . HOST . DIR . '/newsletter/newsletter.php?id=' . $array_mail[0]); if (!$mail_sender->send()) { $error_mailing_list[] = $array_mail[1]; } } return $error_mailing_list; } else { $mail_sender = new Mail(); $mail_sender->set_sender($_NEWSLETTER_CONFIG['sender_mail']); $mail_sender->set_mime(MIME_FORMAT_HTML); $mail_sender->set_recipients($email_test); $mail_sender->set_content($message); $mail_sender->set_object($mail_object); $mail_sender->send(); return true; } } //Fonction qui remplace les caract?res sp?ciaux par leurs entit?s en conservant les balises html function clean_html($text) { $text = htmlentities($text, ENT_NOQUOTES); $text = str_replace(array('&', '<', '>'), array('&', '<', '>'), $text); return $text; } } ?>
Désolé je n'ai pas les fichiers à disposition et je peux pas tester, de plus je crois que le module newsletter utilise encore des vieilles fonctions. Ca devrait marché là.
sch Membre non connecté
Booster Fusée
-
Booster Fusée
- Voir le profil du membre sch
- Inscrit le : 28/09/2010
- Site internet
- Groupes :
Mais déjà merci pour le temps passé.
Bien cordialement.
Sébastien Chauveau : journaliste, producteur, réalisateur
sch Membre non connecté
Booster Fusée
-
Booster Fusée
- Voir le profil du membre sch
- Inscrit le : 28/09/2010
- Site internet
- Groupes :
Maintenant que l'on peut faire notre lettre en BBcode, peut-on l'envoyer à un millier d'abonnés sans se faire tirer l'oreille par son hébergeur ?
Y en a-t-il qui envoient leur NL en grand nombre (on va dire à plus de 200 abonnés) avec le script de pbst ? Cela se passe-t-il sans problème, ou y a-t-il une modif à effectuer ?
Au plaisir de vous lire.
Cordialement.
Sébastien Chauveau : journaliste, producteur, réalisateur
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
- Que faire quand l'hébergeur met en place un quota d'envoi de mail ? Pour ce cas-là on ne peut rien faire je pense.
- L'exécution d'un script PHP est limitée généralement à une trentaine de secondes, ce n'est clairement pas suffisant pour envoyer plusieurs centaines de mails. Il faut s'organiser autrement, en mettant en place des crons par exemple, mais c'est très compliqué. Ceci est dû à une limitation causée par PHP et son principe de fonctionnement.
Tout ça pour dire que j'ai peu d'espoir que tu arrives à expédier des milliers de mails en un coup, et je n'ai pas de solution simple à te donner.
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
sch Membre non connecté
Booster Fusée
-
Booster Fusée
- Voir le profil du membre sch
- Inscrit le : 28/09/2010
- Site internet
- Groupes :
La solution serait peut-être que j'utilise un client emailing, genre sarbacane. Il y en a sûrement d'autres, le tout serait de savoir lequel fonctionne bien avec pbst.
Sébastien Chauveau : journaliste, producteur, réalisateur
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
sch Membre non connecté
Booster Fusée
-
Booster Fusée
- Voir le profil du membre sch
- Inscrit le : 28/09/2010
- Site internet
- Groupes :
Ah ça je ne peux pas te le dire : je ne suis pas du tout développeur. Ce que je sais, c'est que le script de NL que j'utilisais auparavant avait été développé par un collègue. Le nombre d'envoi de message par heure était paramétrable à souhait, selon chaque hébergeur. D'ailleurs, à ce propos, je remarque que les hébergeurs serrent de plus en plus les boulons des envois mails ce qui devient assez difficile pour nos NL sans être obligé de passer par des système, payants tout simplement...
Il y a sûrement un moyen de faire autrement qu'une cron. Sûrement que quelqu'un de beaucoup plus doué que moi ici en lamatière pourra nous le dire.
J'espère que nous arriverons à garder notre NL, et que nous ne serons pas obligés de nous en remettre à des prestataires...
Sébastien Chauveau : journaliste, producteur, réalisateur
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie