Forum PHPBoost
• Support des modules » Newsletter » Problème avec la newsletter Le BBcode s'affiche dans les envois emails
1 2 »
Bonjour et bonne année à tous,
Le 30/12, j'avais posté un message un peu similaire, mais il ne devait pas être dans le bon forum. Depuis, j'ai observé d'autres souci avec lae module de newsletter : disons des soucis chez moi. Peut-être n'en est-il pas de même ailleurs.
Voilà, lorsque je compose ma NL, à la prévisualisation, je n'ai pas de souci particulier. Mais, si je fais le test d'envoi, je reçois une NL qui contient des balises BBcode et des appostrophes comme ceux-ci "\'". Inutile de vous dire qu'une NL qui contient des trucs du genre "[table][row][col][b][i], etc", ou des mots comme "l\'emploi, l'\eherbe, l'\'accident...,, ça n'est franchement pas terrible.
Dequoi cela peut-il venir ?
Suis-je le seul dans ce cas ?
Sinon, j'avais aussi précisé dans mon poste du 30/12 que j'avais un millier d'abonnés à ma NL. Je m'interrogeais donc de savoir comment le module de newsletter gérait les envois.
Au plaisir de vous lire.
Bien cordialement.
Le 30/12, j'avais posté un message un peu similaire, mais il ne devait pas être dans le bon forum. Depuis, j'ai observé d'autres souci avec lae module de newsletter : disons des soucis chez moi. Peut-être n'en est-il pas de même ailleurs.
Voilà, lorsque je compose ma NL, à la prévisualisation, je n'ai pas de souci particulier. Mais, si je fais le test d'envoi, je reçois une NL qui contient des balises BBcode et des appostrophes comme ceux-ci "\'". Inutile de vous dire qu'une NL qui contient des trucs du genre "[table][row][col][b][i], etc", ou des mots comme "l\'emploi, l'\eherbe, l'\'accident...,, ça n'est franchement pas terrible.
Dequoi cela peut-il venir ?
- Est-ce un pb de fonction mail de php ? Au quel cas, dois-je me retourner vers mon hébergeur ?
- Faut-il absolument faire sa NL en HTML ou en texte brut ? Mais en texte brut, adieu les images non ?
Suis-je le seul dans ce cas ?
Sinon, j'avais aussi précisé dans mon poste du 30/12 que j'avais un millier d'abonnés à ma NL. Je m'interrogeais donc de savoir comment le module de newsletter gérait les envois.
Au plaisir de vous lire.
Bien cordialement.
____________________
Vetocheval.com : site de la santé du cheval au quotidien
pornicradio.com : la webradio de Pornic et du Pays de Retz
Vetocheval.com : site de la santé du cheval au quotidien
pornicradio.com : la webradio de Pornic et du Pays de Retz
Je regarderai ces deux problèmes dès que j'en aurai le temps (ce soir peut-être).
Dans tous les cas, je pense que ça vient de PHPBoost et pas de ton hébergeur.
Je précise que pour ce qui concerne les 1000 envois, il se pourrait que tu n'y parviennes pas puisque les mails sont envoyés un après l'autre et que chaque envoi prend un certain temps.
Dans tous les cas, je pense que ça vient de PHPBoost et pas de ton hébergeur.
Je précise que pour ce qui concerne les 1000 envois, il se pourrait que tu n'y parviennes pas puisque les mails sont envoyés un après l'autre et que chaque envoi prend un certain temps.
____________________
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++:
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."
OK, merci pour la réponse. Et pour le temps à passer.
Il faudra que je teste pour les 1000 envoi, car, en fait, je suis autorisé à envoyer 100 message par heure. Donc, tout dépend du temps que met pbst à envoyer, mais si l'on compte 1 s par message, ça fait 60 à l'heure, donc je ne risque pas d'être black listé. Après, il faudra sûrement quelques heures pour envoyer le tout, mais ça c'est habituel je dirais, c'était déjà comme ça avec mon dev interne. Et puis ce doit bien être comme ça pour tout le monde à en croire l'heure à laquelle je reçois parfois les NL.
A moins qu'il y ait une autre méthode. Ou peut-être faudra-t-il hy penser pour la prochaine MAJ de PBST.
Bien cordialement.
Il faudra que je teste pour les 1000 envoi, car, en fait, je suis autorisé à envoyer 100 message par heure. Donc, tout dépend du temps que met pbst à envoyer, mais si l'on compte 1 s par message, ça fait 60 à l'heure, donc je ne risque pas d'être black listé. Après, il faudra sûrement quelques heures pour envoyer le tout, mais ça c'est habituel je dirais, c'était déjà comme ça avec mon dev interne. Et puis ce doit bien être comme ça pour tout le monde à en croire l'heure à laquelle je reçois parfois les NL.
A moins qu'il y ait une autre méthode. Ou peut-être faudra-t-il hy penser pour la prochaine MAJ de PBST.
Bien cordialement.
____________________
Vetocheval.com : site de la santé du cheval au quotidien
pornicradio.com : la webradio de Pornic et du Pays de Retz
Vetocheval.com : site de la santé du cheval au quotidien
pornicradio.com : la webradio de Pornic et du Pays de Retz
Pour être franc avec toi, je pense vraiment pas que la newsletter soit capable de servir 1000 abonnés.
La limitation de l'hébergeur est en effet un problème, mais il va surtout y avoir un problème de temps maximal d'exécution de PHP. En effet, PHP propose un temps maximal d'exécution au bout duquel l'exécution s'arrête. Généralement, les hébergeurs le mettent à 30 secondes ou 1 minute. J'ai très peu d'espoir quant à la faisabilité de terminer les envois en 1 minute...
J'essaierai de regarder si on peut pas trouver une astuce permettant d'améliorer les performances de cette newsletter, mais je pense pas qu'il y ait une solution magique. D'ailleurs, il y a beaucoup d'entreprises qui soustraitent l'envoi de newsletter car c'est quelque chose qui demande une grosse infrastructure, et elles n'existeraient pas si c'était simple (enfin c'est simplement une réflexion personnelle).
La limitation de l'hébergeur est en effet un problème, mais il va surtout y avoir un problème de temps maximal d'exécution de PHP. En effet, PHP propose un temps maximal d'exécution au bout duquel l'exécution s'arrête. Généralement, les hébergeurs le mettent à 30 secondes ou 1 minute. J'ai très peu d'espoir quant à la faisabilité de terminer les envois en 1 minute...
J'essaierai de regarder si on peut pas trouver une astuce permettant d'améliorer les performances de cette newsletter, mais je pense pas qu'il y ait une solution magique. D'ailleurs, il y a beaucoup d'entreprises qui soustraitent l'envoi de newsletter car c'est quelque chose qui demande une grosse infrastructure, et elles n'existeraient pas si c'était simple (enfin c'est simplement une réflexion personnelle).
____________________
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++:
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."
Bonsoir,
Aille aille aille !!! La NL, c'est pourtant super important pour un site, surtout pour un site de contenu... Mais bon, je vais essayer tout de même de faire un envoi, et te tiendrais au courant.
Etonnant : sur mon ancien site, qui était un tout petit dev en interne, j'utilisais un script de NL que j'avais élaboré à partir du siteduzero (je le conseille à tous d'ailleurs, car le si peu de chose que je connais en PHP vient de chez eux, et ça m'est bien utile aujourd'hui). Je l'avais fait amélioré par un collègue, de sorte à ce que le script exécute des envois par paquet de 100. Ceci était paramétrable simplement en changeant la variable dans le script. Le script utilisait par contre une tâche cron. Si tu veux t'en inspirer, pour améliorer celui de pbst et en faire profiter la communauté, pourquoi pas, je peux t'envoyer le script original de mon ancienne NL. Avec ça, j'envoyais sans difficulté mes 1000 lettres. Je pense même que j'aurais pu aller jusqu'à 2000 sans pb.
Si tu me le permets, pendant que nous sommes dans les améliorations, je constate que l'on peut s'abonner à la NL. Mais que l'on ne peux pas s'en désabonner. A moins que je ne me trompe. Serait-il possible pour les MAJ à venir de penser à ce que les gens puissent se désinscrire de la NL. Mais puissent s'en désinscrire seul, car, effectivement, il est toujours possible de désinscrire quelqu'un en le faisant nous-mêmes, administrateur, si un inscrit nous le demande par email.
Enfin, un dernier point, est-ce que le script zappe les adresses emails qui ne sont plus valides. De sorte à alléger les envois qui ne servent à rien. En effet, il est fréquent que les gens s'inscrivent avec une adresse, en changent, et oublient de mettre à jour leurs abonnements NL.
Attention, il ne s'agit pour moi que de remarques, pas de critiques. D'autant que je suis bien incapable de coder comme vous. Je suis plutôt même nulle dans le genre. C'est juste l'avis d'un utilisateur. Donc je parle, enfin, j'écris, mais je ne suis pas forcément sûr que tout ce que je dis soit faisable. Je ne relâte que mes expériences.
Au plaisir.
Bien cordialement.
Aille aille aille !!! La NL, c'est pourtant super important pour un site, surtout pour un site de contenu... Mais bon, je vais essayer tout de même de faire un envoi, et te tiendrais au courant.
Etonnant : sur mon ancien site, qui était un tout petit dev en interne, j'utilisais un script de NL que j'avais élaboré à partir du siteduzero (je le conseille à tous d'ailleurs, car le si peu de chose que je connais en PHP vient de chez eux, et ça m'est bien utile aujourd'hui). Je l'avais fait amélioré par un collègue, de sorte à ce que le script exécute des envois par paquet de 100. Ceci était paramétrable simplement en changeant la variable dans le script. Le script utilisait par contre une tâche cron. Si tu veux t'en inspirer, pour améliorer celui de pbst et en faire profiter la communauté, pourquoi pas, je peux t'envoyer le script original de mon ancienne NL. Avec ça, j'envoyais sans difficulté mes 1000 lettres. Je pense même que j'aurais pu aller jusqu'à 2000 sans pb.
Si tu me le permets, pendant que nous sommes dans les améliorations, je constate que l'on peut s'abonner à la NL. Mais que l'on ne peux pas s'en désabonner. A moins que je ne me trompe. Serait-il possible pour les MAJ à venir de penser à ce que les gens puissent se désinscrire de la NL. Mais puissent s'en désinscrire seul, car, effectivement, il est toujours possible de désinscrire quelqu'un en le faisant nous-mêmes, administrateur, si un inscrit nous le demande par email.
Enfin, un dernier point, est-ce que le script zappe les adresses emails qui ne sont plus valides. De sorte à alléger les envois qui ne servent à rien. En effet, il est fréquent que les gens s'inscrivent avec une adresse, en changent, et oublient de mettre à jour leurs abonnements NL.
Attention, il ne s'agit pour moi que de remarques, pas de critiques. D'autant que je suis bien incapable de coder comme vous. Je suis plutôt même nulle dans le genre. C'est juste l'avis d'un utilisateur. Donc je parle, enfin, j'écris, mais je ne suis pas forcément sûr que tout ce que je dis soit faisable. Je ne relâte que mes expériences.
Au plaisir.
Bien cordialement.
____________________
Vetocheval.com : site de la santé du cheval au quotidien
pornicradio.com : la webradio de Pornic et du Pays de Retz
Vetocheval.com : site de la santé du cheval au quotidien
pornicradio.com : la webradio de Pornic et du Pays de Retz
Je prend en compte tes remarques, pour la 3.1 je referais le module newsletter.
Par contre pour la tache cron, c'est pas géré par tout les serveurs.
Mais je pense pouvoir trouver un bon compromis pour pouvoir faire ça.
Par contre pour la tache cron, c'est pas géré par tout les serveurs.
Mais je pense pouvoir trouver un bon compromis pour pouvoir faire ça.
La solution des tâches cron fonctionne, en effet, mais elle nécessite une manipulation côté serveur, ce que nous évitions à tout prix.
Mais c'est en effet une solution qui fonctionne bien. On verra si dans la prochaine version on peut intégrer un mode de ce genre.
Pour ce qui concerne tes retours, ne t'en fais pas, on ne les prend pas mal, je suis bien conscient que beaucoup de modules et en particulier newsletter sont limités. Toutes les critiques, qu'elles soient bonnes ou mauvaises, sont bonnes à prendre.
Mais c'est en effet une solution qui fonctionne bien. On verra si dans la prochaine version on peut intégrer un mode de ce genre.
Pour ce qui concerne tes retours, ne t'en fais pas, on ne les prend pas mal, je suis bien conscient que beaucoup de modules et en particulier newsletter sont limités. Toutes les critiques, qu'elles soient bonnes ou mauvaises, sont bonnes à prendre.
____________________
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++:
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."
Bonjour,
Il est vrai que c'est quand même bien d'éviter les manipulations côté serveur. C'est la force de gros CMS comme PHPboost ou Joomla, où il n'y a rien à faire, où tout se fait du panneau d'administration. Car, d'autres CMS, bien plus petits, obligent non seulement à aller manipuler côté serveur, mais en plus à aller mettre les mains dans le code en permanence ce qui, à mon avis, n'est pas du rôle des utilisateurs mais des codeurs. C'est le cas de phpannonces par exempple.
Donc, prenez votre temps les amis. Mieux vaut mettre quelques semaines de plus et sortir un truc top que de vouloir aller trop vite et pondre un truc qui n'est pas fini et qui bug en permanence. Ca sent le vécu ça, je vous le dit...
Je suis déjà pressé de voir la 3.1.
Je le redit : je ne sais pas coder, en revanche, je sais écrire, même si parfois sur les forums j'écris à l'arrache. Etant journaliste/rédacteur, je peux en effet donner un coup de main à la rédaction des notices d'explications.
Bien cordialement.
Il est vrai que c'est quand même bien d'éviter les manipulations côté serveur. C'est la force de gros CMS comme PHPboost ou Joomla, où il n'y a rien à faire, où tout se fait du panneau d'administration. Car, d'autres CMS, bien plus petits, obligent non seulement à aller manipuler côté serveur, mais en plus à aller mettre les mains dans le code en permanence ce qui, à mon avis, n'est pas du rôle des utilisateurs mais des codeurs. C'est le cas de phpannonces par exempple.
Donc, prenez votre temps les amis. Mieux vaut mettre quelques semaines de plus et sortir un truc top que de vouloir aller trop vite et pondre un truc qui n'est pas fini et qui bug en permanence. Ca sent le vécu ça, je vous le dit...
Je suis déjà pressé de voir la 3.1.
Je le redit : je ne sais pas coder, en revanche, je sais écrire, même si parfois sur les forums j'écris à l'arrache. Etant journaliste/rédacteur, je peux en effet donner un coup de main à la rédaction des notices d'explications.
Bien cordialement.
____________________
Vetocheval.com : site de la santé du cheval au quotidien
pornicradio.com : la webradio de Pornic et du Pays de Retz
Vetocheval.com : site de la santé du cheval au quotidien
pornicradio.com : la webradio de Pornic et du Pays de Retz
ben.popeye, en MP, tu m'indique le fichier newsletter.class.php à remplacer. Seulement, ce fichier n'existe pas. Il n'y a que newsletter_clinterface.class.php newsletter_service.class.php.
Peux-tu préciser ?
D'avance, merci.
Peux-tu préciser ?
D'avance, merci.
____________________
Vetocheval.com : site de la santé du cheval au quotidien
pornicradio.com : la webradio de Pornic et du Pays de Retz
Vetocheval.com : site de la santé du cheval au quotidien
pornicradio.com : la webradio de Pornic et du Pays de Retz
Euh, sch, je suis désolé mais je vois pas de quel MP tu parles.
____________________
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++:
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."
Pardon ben.popeye, ce n'était pas à toi que j'avais adressé ce MP mais à ReidLos. J'suis allé trop vite !
Désolé.
Bien cordialement.
Désolé.
Bien cordialement.
____________________
Vetocheval.com : site de la santé du cheval au quotidien
pornicradio.com : la webradio de Pornic et du Pays de Retz
Vetocheval.com : site de la santé du cheval au quotidien
pornicradio.com : la webradio de Pornic et du Pays de Retz
Tu as bien regardé ?
Bin oui, dans le répertoire newsletter, voici ce qu'il y a :
db ; lang ; templates ; admin_newsletter.php ; admin_newsletter_config.php ; index.php ; newsletter.php ; newsletter.png ; newsletter_arch.php ; newsletter_begin.php ; newsletter_interface.class.php ; newsletter_mini.php ; newsletter_mini.png ; newsletter_service.class.php
db ; lang ; templates ; admin_newsletter.php ; admin_newsletter_config.php ; index.php ; newsletter.php ; newsletter.png ; newsletter_arch.php ; newsletter_begin.php ; newsletter_interface.class.php ; newsletter_mini.php ; newsletter_mini.png ; newsletter_service.class.php
____________________
Vetocheval.com : site de la santé du cheval au quotidien
pornicradio.com : la webradio de Pornic et du Pays de Retz
Vetocheval.com : site de la santé du cheval au quotidien
pornicradio.com : la webradio de Pornic et du Pays de Retz
tu as quoi dans newsletter_service.class.php ? Je comprend, ont devrait avoir les mêmes fichiers, j'ai regardé ce point là sur la 3.0
Voici le contenu du fichier 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('" . $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]', '<br /><br /><a href="' . HOST . DIR . '/newsletter/newsletter.php?id=' . $array_mail[0] . '">' . $LANG['newsletter_unscubscribe_text'] . '</a><br /><br />', $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($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('" . $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 = '<br /><br /><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'] . '>' . "\r\n";
$header .= 'Reply-To: ' . $_NEWSLETTER_CONFIG['sender_mail'] . "\r\n";
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 . "\n\n" . $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;
}
}
?>
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('" . $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]', '<br /><br /><a href="' . HOST . DIR . '/newsletter/newsletter.php?id=' . $array_mail[0] . '">' . $LANG['newsletter_unscubscribe_text'] . '</a><br /><br />', $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($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('" . $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 = '<br /><br /><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'] . '>' . "\r\n";
$header .= 'Reply-To: ' . $_NEWSLETTER_CONFIG['sender_mail'] . "\r\n";
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 . "\n\n" . $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;
}
}
?>
____________________
Vetocheval.com : site de la santé du cheval au quotidien
pornicradio.com : la webradio de Pornic et du Pays de Retz
Vetocheval.com : site de la santé du cheval au quotidien
pornicradio.com : la webradio de Pornic et du Pays de Retz
• Support des modules » Newsletter » Problème avec la newsletter Le BBcode s'affiche dans les envois emails
1 2 »
1 Utilisateur en ligne :: 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne: Aucun membre connecté
Utilisateur en ligne: Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie





PHPBoost

Support
Téléchargements
Développement
Communauté











