Mailshot

Ce plugin prend en charge l’envoi en nombre d’info-lettres par email.

Mailshot permet l’envoi en nombre d’emails au moyen d’un SMTP (ou d’un service externe) dédié à cet effet. Il permet de limiter la cadence d’envoi.

Enfin, ce plugin implémente la partie send de l’API Newsletter et peut donc être utilisé avec les plugins Mailsubscribers et Newsletters pour l’envoi de Newsletters.

La question du SPAM

Avant de décrire en détail le fonctionnement du plugin, il est important de souligner que l’envoi de mails en nombre est rendu de plus en plus difficile en raison de la prédominance du SPAM. Plus de 95% des emails qui circulent sur les serveurs de courriers sont du SPAM. Les opérateurs de mails (FAI, gmail...) sont donc de plus en plus stricts dans les règles de filtrage.

En tant qu’éditeur de contenu et utilisateur de ce plugin, vous avez une responsabilité : n’envoyer du contenu qu’à des utilisateurs qui l’ont sollicité par une demande explicite. Lorsque vous ne respectez pas cette règle, vous envoyez des emails non sollicités, c’est à dire du SPAM. Et vous contribuez à renforcer les règles de filtrage des opérateurs de mail.

Cette situation généralisée entraine bien des désagréments :

  • certains mails légitimes n’arrivent jamais à vos destinataires ;
  • en tant qu’expéditeur régulier vous risquez d’être blacklisté, voire votre serveur risque d’être blacklisté.

C’est pour cette raison que ce plugin ne permets pas d’envoyer des mails à l’aide de la fonction mail() de PHP. Cette fonction permet l’envoi simple de mail, mais elle passe par un canal partagé entre tous les sites hébergés par un serveur. Si vous l’utilisez à mauvais escient, c’est tous les autres utilisateurs qui seront pénalisés.

C’est également pour cette raison que ce plugin propose d’utiliser un service d’envoi de mail (serveur SMTP dédié, service externe commercial) spécifique à cet usage. Ainsi, même si vos envois en nombre déclenchent - à tort ou à raison - un filtrage chez les opérateurs de mail, le reste du fonctionnement du site n’en sera pas affecté (envoi des mails d’inscriptions, de formulaire de contact, de notification de forum, de pétitions...). Utilisez cette possibilité et protégez le fonctionnement quotidien de votre site web.

N’utilisez pas le serveur SMTP de votre fournisseur de mail pour envoyer vos emails en nombre, mais uniquement un serveur SMTP dédié à ça. Si vous n’en avez pas, utilisez un prestataire d’envoi d’emails en nombre.

Ou alors ne venez pas demander de l’aide sur vos mails en erreur, on vous aura prévenu.

Installation

L’installation du plugin nécessite le plugin Facteur qui prend en charge l’envoi des mails à l’aide d’un serveur SMTP.

Configuration

La configuration du plugin concerne le service d’envoi qui sera utilisé pour les envois en nombre ainsi que les réglages d’expéditeur (nom et email) :

Configuration du plugin Mailshot

Service d’envoi

Le réglage par défaut est d’utiliser le même service d’envoi que pour les autres mails (soit le serveur de mail SMTP configuré dans le plugin Facteur). Ce réglage fonctionne mais n’est pas conseillé comme indiqué plus haut.
Si aucun serveur SMTP n’est configuré par défaut, le premier choix est désactivé comme ceci :

Cette fois vous n’y couperez pas : vous devez alors absolument choisir un autre service pour l’envoi de vos emails.

Vous pouvez configurer un serveur SMTP (celui qui gère les emails de votre nom de domaine, Gmail...) (assurez vous dans tous les cas qu’il accepte que vous passiez par lui pour cet usage) :

Sinon, et c’est la solution la plus fiable, il vaut mieux utiliser un service dédié à l’envoi de mails en nombre comme Mailjet [1], Sparkpost [2] ou Mandrill [3] (disclaimer : l’auteur n’a aucun intérêt dans ces services commerciaux).

Le plugin propose aussi l’utilisation du service Mandrill, mais celui-ci est désormais soumis à l’utilisation d’un compte MailChimp payant, ce qui en restreint l’accès.

Cadence d’envoi

Dans tous les cas, que vous utilisiez un serveur SMTP ou un service externe, il est possible, voire probable, que vous soyez soumis à une cadence d’envoi maximale (nombre maximum de mails par quart-d’heure, par heure, par jour...). Dans ce cas là, convertissez cette cadence maximale en nombre de mail par jour et renseignez le champ Limiter la cadence d’envoi. La cadence sera prise en compte en espaçant l’envoi des mails de façon régulière pour ne pas dépasser cette moyenne journalière.

Envoi rapide

A contrario, si vous utilisez un service d’envoi capable d’envoyer très vite, ou de tout recevoir très vite et de mettre en attente les envois surnuméraires (c’est le cas de Mandrill notamment), vous pouvez activer l’option d’envoi rapide.

Quand cette option est cochée le plugin essaye d’envoyer aussi rapidement que possible à tous les destinataires. Notamment, en fonction du nombre d’envoi total à réaliser, il va lancer des processus parallèles pour accélérer le traitement, en étant capable par exemple d’envoyer 50 000 mails/heure si on a 200 000 destinataires.

Attention toutefois, envoyer rapidement un grand nombre de mails est une chose, mais il faut penser que cela va provoquer un pic de visites simultanées sur votre site, et que votre hébergement doit aussi être dimensionné pour absorber ce trafic supplémentaire.

Expéditeur

La dernière partie du formulaire permet de fixer les noms et emails de l’expéditeur qui apparaitra sur vos envois en nombre.

Historique des envois

Pour chaque envoi, le plugin conserve un historique de chaque adresse mail destinataire, date d’envoi, et statut (lu, cliqué, rejeté…) si il est récupéré depuis un service externe. Si vous envoyez beaucoup de lettres à beaucoup de destinataires, cela peut faire grossir la base de données de manière excessive, et dans ce cas il est préférable de purger les statistiques d’envoi pour les vieux envois.
Seul le détail des statistiques sera purgé, mais vous conserverez une statistique globale du nombre de mails reçus, lus, cliqués, rejetés…

Personnalisation du contenu des courriels

Avant chaque envoi d’un email, le plugin déclenche la personnalisation du mail à l’aide des variables qui décrivent le destinataire (voir Newsletters).
Les variables sont celles fournies par le plugin Mailsubscribers pour la description d’un inscrit :

  • email
  • nom
  • listes
  • lang
  • status
  • url_unsubscribe

Pour plus de détail, voir ce que retourne la methode newsletter/subscriber de l’API Newsletter.

Lors de l’envoi à un email unique qui n’est pas forcément inscrit, le plugin essaye de remplir au mieux les variables.

Envoi d’une Info-lettre

L’envoi d’une info-lettre se fait depuis la page d’administration de l’info-lettre, tel que décrit par Newsletters. Un formulaire d’envoi est disponible :

Si la première partie du formulaire sert à faire un envoi unitaire, c’est ici la seconde partie qui nous intéresse. En sélectionnant une liste d’inscrits, on peut déclencher l’envoi en masse à cette adresse en cliquant sur le bouton « Envoyer ! » en regard du selecteur :

On reçoit alors un message de confirmation du déclenchement de l’envoi, et l’envoi en cours apparaît en bas du formulaire. Un résumé de l’avancement apparaît (exprimé en nombre de mails envoyés par rapport nombre total de destinataires). Des boutons de contrôle permettent de mettre l’envoi en pause ou d’abandonner l’envoi.

Tant qu’un envoi est en cours, la liste est rafraichie toutes les 2minutes pour afficher la progression de l’envoi.

Suivi des envois de lot

Il est possible d’avoir une vision plus détaillée des envois de lot (passés en en cours). Pour cela, utilisez le menu Publication > Suivi des envois de mails en nombre. Vous accédez alors à une page qui récapitule les envois en cours et les envois terminés :

Les lots d’envoi en cours sont affichés d’une puce orange, les envois en pause d’une puce blanche, les envois terminés d’une puce verte et les envois abandonnés d’une puce rouge.

Si on clic sur le lien Envoi N°x d’un des envois, on arrive sur une page récapitulative complète qui expose la date et l’avancement de l’envoi, le contenu HTML et texte envoyé, ainsi que la liste des destinataires :

Les destinataires sont regroupés par statut (envoi à venir, envoi réussi, email ouvert, email cliqué, envoi échoué). Il est ainsi possible de retrouver si l’email a déjà été envoyé à un destinataire particulier, ou si il l’a ouvert, ou cliqué sur un lien [4].

Gestion des erreurs

Lorsque l’envoi à un destinataire échoue, on incrémente un compteur de tentative pour ré-essayer en fin de lot. À la 5e tentative en échec l’envoi est marqué en statut fail et n’est plus relancé.
Il est possible de personnaliser ce nombre de 5 tentatives en définissant la constante define('_MAILSHOT_MAX_TRY', 5);

La gestion des bounce est prise en charge avec le service Mandrill qui notifie en HTTP pour signaler quand un envoi a été rejeté. Dans le cas de l’envoi par SMTP on ne gère pas les bounce (l’API interne le permet au moyen de la fonction newsletter/feedback mais il faut implémenter la partie relève d’une boite mail qui sert à collecter les bounces).

Pour le service Mailjet, l’API calcule les bounces.

Si la même adresse de destinataire a été vue en échec ou en bounce lors des 3 derniers envois (et que chacun de ces envois a réussi pour au moins un destinataire) cette adresse est automatiquement désabonnée de toutes les listes.
Il est possible de personnaliser ce seuil de 3 envois en définissant la constante define('_MAILSHOT_MAX_FAIL', 3);

En cas de non-déclenchement des envois :

Si l’envoi ne démarre pas ou met du temps, c’est parce que le cron de SPIP ne fonctionne pas ou pas assez souvent. Vous pouvez le forcer à la main en appelant l’url spip.php?action=cron mais en général c’est lié à un hebergeur qui bloque les appels http sortant, ou un site avec vraiment très peu de traffic.
Dans ce cas, un paliatif peut-être d’ajouter dans le fichier mes_options.php la ligne :
define('_HTML_BG_CRON_FORCE',true);

Migration depuis un ancien plugin

Lors de l’installation, le plugin regarde si les plugins SPIP-Listes ou SPIP-Lettre étaient auparavant utilisés. Si les tables correspondantes sont détectées, l’historique des envois (et des destinataires si possible) est automatiquement importé. Il contient naturellement le contenu HTML et Texte qui avait été envoyé.

Après avoir installé le plugin Mailshot et vérifié que toutes les anciens envois ont bien été importés, vous pouvez désinstaller votre ancien plugin pour supprimer ses données si vous le souhaitez.

Notes

[1pour bénéficier des fonctions de statistiques d’envoi au sein de SPIP, il faut utiliser l’API v3 de Mailjet

[2pour bénéficier des services de Sparkpost, il faudra que votre serveur fonctionne sous php 5.5.0 minimum

[3qui nécessite maintenant un compte Mailchimp payant

[4les fonctions de tracking sont implémentées avec les services Mailjet, Sparkpost et Mandrill

Discussion

127 discussions

  • 2

    Bonjour,
    éant hébergé chez ovh en mutualisé, la cadence d’envoi par smtp est limité à 100 envoi par heure.

    Est-il possible, dans Mailshot de régler cette cadence

    Merci pour votre aide

    Bruno

    Répondre à ce message

  • 1

    Bonjour !
    J’utilise l’API Newsletter et j’avoue que c’est top. Merci pour ce travail !

    Cependant, quelques petits retours :

    1- la génération à chaque envoi d’adresses en @example.org.
    Comment éviter cela ?

    2- un problème sur les envois de confirmation de désinscription. Voici le mail que je reçois pour chaque action de désabonnement (quelle que soit l’adresse de l’abonné) :

    This message was created automatically by mail delivery software.
    
    A message that you sent could not be delivered to one or more of its recipients. The following addresses failed:
    
      <***email de l'abonné***>
    
    SMTP error from remote server after RCPT command:
    host mailin-02.mx.aol.com[*************]:
    550 5.1.1 <***email de l'abonné***>: Recipient address rejected: aol.com
    
    --- The header of the original message is following. ---
    
    Received: from icpu3024.kundenserver.de (infong-fr3.clienthosting.fr [212.227.221.35])
    	by mrelayeu.kundenserver.de (node=mreu4) with ESMTP (Nemesis)
    	id 0MZs54-1WDkr80MOc-00LXji; Thu, 19 Dec 2013 02:56:16 +0100
    Received: from 82.165.21.133 (IP may be forged by CGI script)
        by icpu3024.kundenserver.de with HTTP
        id 4ANU2z-1WC6A005HI-00ImPy; Thu, 19 Dec 2013 02:56:16 +0100
    X-Sender-Info: <460334723@icpu3024.kundenserver.de>
    Precedence: bulk
    X-Apache-Env: www-ip="ODIuMTY1LjIxLjEzMw==";helo="aWNwdTMwMjQua3
     VuZGVuc2VydmVyLmRl";script="L3NwaXAucGhw"
    To: ***email de l'abonné***
    Subject: =?iso-8859-1?Q?[nom du site]_D=E9sinscription_de_la_Newsletter?=
    Date: Thu, 19 Dec 2013 02:56:16 +0100
    From: nom du site <[*************]:>
    Message-ID: <3aac77c37b206f9754df074b347ff3c9@[*************]:>.com>
    X-Priority: 3
    X-Mailer: PHPMailer 5.1 (phpmailer.sourceforge.net)
    MIME-Version: 1.0
    Content-Transfer-Encoding: 8bit
    Content-Type: text/html; charset="iso-8859-1"
    X-Provags-ID: V02:K0:P33/5jX/++6lrQw6854xtrfmkyoz3b/4SYWcBRPIgGl
     3s86zYSW1uOwJFQgmA6fFyumCEZpB8TLxYwAcTI08HM82qe40Q
     B19T4a5iellAV7t10RBFtTY88/iWCHMsJB2euoOHjXdf3sJs30
     q7NNgrB/GFoWirKwnA/8YcJjOfNvqm7wHVCqjfDWgIK2JAFD9J
     MviinoKUu+8pTg6YTk11y1OFrl4uXzsfQIW0B0JDbzAmE6Jacp
     j6sdB80SmtfFoS27zE40lcrGkmaiH6LHoao+XWFGEaw1BNemDj
     atL5z7b95M781ojRHMJckVKMWvc6Vo+T6P1nQfFAASSJD/Fjw0
     dbp/VA38YF8vaPNQXnfrfUYnLeW3R4mcRE2Kq8iZ/xJGmqh3Wn
     RKJ5U5Kx+DYtg==

    D’où ça peut venir ?

    4- Ces personnes qui se désinscrivent par le lien de leur newsletter n’apparaissent pas dans la liste des Désinscrits. Donc je n’ai pas de moyen de suivre les désabonnements autrement que par la réception des messages d’erreur cités ci-dessus. Et j’ai vérifié : tous ces emails sont bien supprimés de la liste des abonnés.

    3- quand on supprime des abonnés à la main (mes fameux @example.org), serait-il possible de les retrouver dans la Corbeille du plugin du même nom ? Ce serait vraiment parfait.

    Voilà pour moi. Si le Père Noël existait, je lui demanderais bien d’adapter cette magnifique API pour Spip 2. Je galère tellement avec les sites de mes clients qui ne passeront peut-être jamais à Spip 3 !!

    Précision : j’utilise Mandrill ; mes plugins étaient à jour sauf Mailsubscribers que je viens de rafraichir.
    Merci-merci Cédric

    • Ah oui ! j’ai oublié : je crois avoir noté un lien entre le désabonnement de quelqu’un, la génération d’un email en example.org et la réception du message d’erreur. Cela vient de m’arriver à l’instant.

    Répondre à ce message

  • 4

    ATTENTION FAILLE DE SECURITE
    j’ai installlé ce plugin sur un site d’un de mes client il y a quelques temps, ce dernier n’a pas envoyé un seul email via le plugin mais je me retrouve avec pres de 40.000 mail envoyés depuis le site a des adresses john.doeXXX@example.org et jane.doexxx@example.org !!!
    génial pour blacklister l’adresse du serveur !

    • Bonjour

      Tout les plugins et spip sont à jour ?

    • Bonjour Pierre,
      je suis avec une 3.0.10 et au niveau des rares plugins que j’ai installé ceux sont les derniers mis sur la zone.
      Le site est en place depuis cet été.
      Je me suis aperçu que la table spip_mailsubscribers était bien vérolée aussi !!!

    • Tu as que des adresse @exemples.org ou .com ? Car le plugins gère ça depuis la dernière version donc vérifier si il est à jour.

      Nospam peut aider aussi

    • Oh là là que de catastrophisme ! Il n’y a là aucune faille de sécurité, stop à la calomnie !

      Simplement tu as installé le plugin sur un SPIP où était auparavant installé le plugin SPIP-Lettres, et donc il y a eu un import automatique des données de SPIP-Lettres :

      • Tous les envois passés ; en fonction de la version de SPIP-Lettres ou de l’historique de la base, on ne retrouve pas toujours l’email a qui l’envoi a été fait, et dans ce cas le plugin mets au hasard un jane.doe ou john.doe
      • Tous les abonnés qu’il y avait dans le plugin SPIP-Lettres.

      Le plugin n’a rien envoyé de lui même, n’aie aucun doute là-dessus.

    Répondre à ce message

  • « Aucun destinataire programmé »

    Bonjour à tous,

    je suis en train d’envoyer ma première newsletter, cela fait 1h30 que j’ai lancé l’envoi à mes 30 abonnés ;

    L’envoi m’affiche, tout en bas :

    Aucun destinataire programmé (initialisation en cours)

    Est-ce normal ? Combien de temps cela prend-il ?

    Les teste d’envoi à une personne fonctionne, mon compte smtp est bien programmé, je suis chez OVH.

    Très bonne journée,

    Eric LM

    Répondre à ce message

  • 2

    Bonjour,

    J’ai un souci pour la configuration du serveur SMTP

    J’ai fait de multiples essais d’abord à partir du smtp de mon fournisseur d’accès
    -  J’ai d’abord utilisé les paramètres qui fonctionnent sur mon PC (via Outlook) et sur mon smartphone, et me permettent d’envoyer des mails quels que soient les fournisseurs d’accès (orange, free, sfr, bouygues,...)
    -  J’ai ensuite essayé.. au cas où... mais sans succès toutes les combinaisons possibles entre les ports (25, 465, 587) et le type de sécurisation (non, SSL, TLS)

    -  J’ai fait de même avec mon compte Gmail sans plus de succès

    -  J’ai ouvert un compte chez Mandrill.. et utilisé sans plus de succès les codes fournis (j’avais bien auparavant confirmé mon inscription avec le lien reçu par mail)...

    -  J’ai ouvert un autre compte ches Mailjet, et là... cerise sur le gâteau, j’ai droit à ce message d’erreur lorsque je renter les paramètres :
    Fatal error : Call to undefined function json_decode() in /mnt/114/sda/2/6/mm.photos/plugins/mailshot-v1/lib/mailjet-api-php/mailjet-0.1.php on line 112

    Et j’ai les mêmes soucis en configurant « Facteur » qui ne fonctionne (très bien) qu’en utilisant la fonction mail de PHP désactivée ici... Je fais donc aussi un post sur le forum de ce plugin...

    Quelqu’un a-t-il eu le même problème... et surtout trouvé la parade...
    MERCI D’AVANCE !

    • Si aucun service SMTP ne fonctionne sur ton site, il y a toutes les chances que ce soit parce que ton hébergeur bloque les ports concernés en sortie pour éviter l’envoi de SPAM par les sites hébergés.

      Quelle est sa politique concernant l’envoi de mail en nombre par les sites hébergés ? Je doute qu’ils autorisent l’utilsation de mail() pour des envois nombreux…

    • Bonjour Cédrick, et un double merci.. pour la rapidité de ta réponse et la qualité de tes plugins.

      J’ai effectivement pu faire fonctionner sans problème une Newslettter sur un site associatif hébergé par OVH (ce qui me rassure un peu sur mes connaissances en matière de configuration).

      Pour ce qui est de mon site perso hébergé chez Free, j’étais arrivé à peu près à la même conclusion mais avec trois interrogations :

      1. pourquoi puis-je malgré tout envoyer des mails à partir du formulaire de contact ? (via la fonction mail de php qui n’est donc pas bloquée...) ?
      2. pourquoi les services extérieurs à Free comme Mailjet et Mandrill sont-ils eux aussi bloqués ?
      3. habituellement lorsque ça bloque chez un FAI, il y a plein de posts sur le sujet (y compris sur d’autres forums) et je n’en ai pas trouvé... serai-je le premier à faire ce constat ?

      J’ai donc espéré que j’avais fait une erreur... ou qu’il y ait une parade (comme pour l’activation de php5 via une instruction sur .htacess pour pouvoir utiliser SPIP 3).

      Alors si quelqu’un peut me confirmer que ça ne marche pas non plus sur son site hébergé en pages perso chez Free, cela validera donc l’hypothèse... et si quelqu’un a trouvé comment il a pu contourner la difficulté... ça sera le must :-)

      Cordialement et merci encore.
      (P.S. j’ai bien désactivé le blocage du SMTP sortant sur ma freebox)

    Répondre à ce message

  • Bonjour,
    Je ne sais pas si c’est lié mais une newsletter a été envoyée ce matin et depuis dans l’espace privé j’avais des erreurs sur toutes les pages privées :

    1 Array / /

    spip_jobs
    Si votre base de données a crashé, vous pouvez tenter une réparation automatique.
    Liste des travaux
    Aucun travail en attente

    Lorsque je clique réinitialiser les travaux rien ne se passe

    J’ai lancé la réparation automatique :

    spip_jobs (10 éléments)
    site.spip_jobs repair info Delete link points outside datafile at 0

    et les erreurs ont disparu.

    SPIP 3.0.11 [20757]

    dd

    Répondre à ce message

  • Bonsoir !
    Est-il possible de recommencer l’envoi pour les éventuels échecs (les fameux fails !) via SMTP ?
    Cordialement !
    Romain

    Répondre à ce message

  • 10

    Hello,
    petit souci d’envoi : une newsletter programmée, déclenchée et produite à l’heure voulue.
    Passe en envoi en cours, un enregistrement dans spip_mailshots est créé au même moment.
    Le site est très visité (à toute heure) avec en plus un appel curl en cron sur / ?action=cron toutes les dix minutes.
    Mais aucun envoi n’est fait, l’envoi reste en cours, il se déclenche finalement 5h plus tard.
    Et rien dans les logs (niveau de log en prod au minimum).

    Habituellement ça fonctionne très bien, mais pas ce matin...
    Une idée ?

    • PS : l’heure d’envoi est assez importante à respecter.
      Peut être lié à une fréquence d’une des taches de maintenance que je pourrais augmenter ?

    • A nouveau, une newsletter programmée a bien été publiée à l’heure voulue (16h), avec un seul destinataire, un enregistrement mailshot créé dans la base, mais l’envoi est toujours en attente (processing) à 22h.
      Beaucoup de visites + un appel sur action=cron régulier.
      Une connexion à /ecrire décoince l’envoi.
      Je ne sais plus trop où vérifier...

    • OK, dans le cas où on utilise Mandrill il pouvait en effet y avoir un cas limite qui foire, si jamais la réponse de Mandrill était trop lente et provoquait un timeout. http://zone.spip.org/trac/spip-zone/changeset/75964 devrait corriger ce problème.

    • Dans mon cas c’est le SMTP de mailjet qui est configuré, donc si je lis bien le code ça utilise un facteur avec mes propres options smtp.
      Je vais quand même appliquer la maj et surveiller les prochains envois (vérifier la table mailshot et la méta mailshot_processing).
      Comment expliquer qu’une visite sur /ecrire débloque et provoque l’envoi en attente ?
      (même scénario ce matin encore)

    • Je ne vois pas de rapport justement. Sauf si tu vas sur la page « Liste des travaux ». Quand c’est coincé il faudrait que tu regardes la liste des taches qui sont dans la table job_queue pour voir si il y a bien une tache « mailshot_bulksend » et aussi la meta « mailshot_processing » dans spip_meta. Voir aussi si il n’y a pas une erreur fatale dans les logs ?

      J’ai un site avec une newsletter programée en « test » qui marche parfaitement, je vais essayer de la passer en envoi sur liste pour voir si je reproduis le bug, car là je n’ai pas trop de piste...

    • Rien dans les logs à part une erreur au moment de la production de la newsletter :
      UPDATE xxx.spip_newsletters
      SET lang=’lang’,langue_choisie=’oui’
      WHERE id_newsletter=85
      mais ça ne me semble pas lié, la newsletter est bien produite et l’enregistrement mailshot créé en « processing ».
      De mémoire il y avait bien une tache mailshot_bulksend dans les travaux mais pas eu le temps de noter les valeurs.
      Je suis en niveau de log par défaut en prod, je vais essayer de passer en niveau 7.
      Difficile à tracer, ce bug...

      Un indice : sur les derniers cas, il semblerait que l’envoi se fasse en fait un peu plus de 5h après le départ prévu de la newsletter, peut être pas lié à une connection sur /ecrire (?)..
      rien de certain, j’investigue

    • Sur l’erreur Mysql j’ai oublié de préciser l’erreur en question :
      Unknown column ’langue_choisie’ in ’field list’ -
      UPDATE xxx.spip_newsletters
      SET lang=’lang’,langue_choisie=’oui’
      WHERE id_newsletter=85

      mais aucune incidence, la newsletter est bien créée.

    • Ce matin à nouveau, newsletter programmée et produite à 4h00, expédiée à 9h14 (avec un seul destinataire chez Mailjet). Des visites sur /ecrire depuis 7h00 n’ont rien déclenché.

      La pêche aux logs donne ceci, mais ne connaissant pas suffisamment la gestion des travaux ça ne me parle pas :

      newsletterprog.log
      Sep 20 04:00:06 87.98.xxx.xxx (pid 28421) plugins/auto/newsletters/v1.3.0/genie/newsletters_programmees.php:L34:genie_newsletters_programmees_dist() ::Pub:info : programmer #1 date : 2013-09-20 04:00:00

      queue.log
      Sep 20 04:00:05 87.98.xxx.xxx (pid 28421) ecrire/inc/queue.php:L237:queue_start_job() ::Pub:info : queue [36410] : genie_newsletters_programmees_dist() start
      Sep 20 04:00:12 87.98.xxx.xxx (pid 28421) ecrire/inc/genie.php:L179:queue_genie_replan_job() ::Pub:info : replan_job mailshot_bulksend 60 1379642357 0 0
      Sep 20 04:00:12 87.98.xxx.xxx (pid 28421) ecrire/inc/queue.php:L254:queue_start_job() ::Pub:info : queue [36410] : genie_newsletters_programmees_dist() end
      Sep 20 04:00:12 87.98.xxx.xxx (pid 28421) ecrire/inc/genie.php:L179:queue_genie_replan_job() ::Pub:info : replan_job newsletters_programmees 259195 1379642412 1379901607 0
      Sep 20 04:00:14 93.93.xxx.xxx (pid 29485) ecrire/inc/queue.php:L237:queue_start_job() ::Pub:info : queue [37287] : genie_mailshot_bulksend_dist() start
      Sep 20 04:00:14 93.93.xxx.xxx (pid 29485) ecrire/inc/queue.php:L254:queue_start_job() ::Pub:info : queue [37287] : genie_mailshot_bulksend_dist() end

      Et finalement, envoi à 9h14 :

      Sep 20 09:14:49 93.93.xxx.xxx (pid 3078) ecrire/inc/queue.php:L237:queue_start_job() ::Pub:info : queue [36020] : genie_queue_watch_dist() start
      Sep 20 09:14:49 93.93.xxx.xxx (pid 3078) ecrire/inc/genie.php:L179:queue_genie_replan_job() ::Pub:info : replan_job mailshot_bulksend 60 1379661234 0 0
      Sep 20 09:14:49 93.93.xxx.xxx (pid 3078) ecrire/inc/queue.php:L254:queue_start_job() ::Pub:info : queue [36020] : genie_queue_watch_dist() end
      Sep 20 09:14:49 93.93.xxx.xxx (pid 3078) ecrire/inc/genie.php:L179:queue_genie_replan_job() ::Pub:info : replan_job queue_watch 86400 1379661289 1379747689 0
      Sep 20 09:14:50 93.93.xxx.xxx (pid 2902) ecrire/inc/queue.php:L237:queue_start_job() ::Pub:info : queue [37628] : genie_mailshot_bulksend_dist() start
      Sep 20 09:14:51 93.93.xxx.xxx (pid 2902) ecrire/inc/queue.php:L254:queue_start_job() ::Pub:info : queue [37628] : genie_mailshot_bulksend_dist() end

      PS : 87.98.xxx.xxx est l’IP d’un serveur distant qui déclenche ?action=cron, 93.93.xxx.xxx est l’IP du serveur lui même

    • Un indice ? les newsletters en retard semblent partir avec un peu plus de 5h de retard.
      Extrait de spip_mailshots sur les retardataires :

      date ; date_start
      2013-09-20 09:14:51 ; 2013-09-20 04:00:11
      2013-09-19 09:14:51 ; 2013-09-19 04:00:06
      2013-09-18 21:51:27 ; 2013-09-18 16:00:04
      2013-09-17 09:14:47 ; 2013-09-17 05:11:34
      2013-09-12 09:31:59 ; 2013-09-12 04:00:03

      Pour celle du 17/09 partie à 9h14 au lieu de 5h11, une autre newsletter était bien partie à l’heure juste avant :
      2013-09-17 05:09:45 ; 2013-09-17 05:09:42

    • Cédric a apporté une modif sur le traitement de la meta processing qui semble régler le problème, probablement lié à un type d’hébergement particulier.
      http://zone.spip.org/trac/spip-zone/changeset/76411

      Mise à jour en 1.5.10, tout semble partir comme prévu, à suivre...

    Répondre à ce message

  • 2

    Bonsoir,
    Nous sommes hébergés chez DRI.
    Nous avons envoyé la semaine dernière une première newsletter par SMTP à 360 destinataires.
    72 de ces envois ont échoué.
    Le support de DRI nous conseille de passer plutôt par son service de mailing list qui, dit-il, sait gérer des listes de plusieurs milliers de destinataires en toute sécurité.
    Mais comment faire ?
    Merci pour votre aide.

    • 72 erreurs sur 360 c’est énorme, c’est un vrai risque pour votre serveur si vous augmentez la cadence avec un taux d’erreur aussi important.

      Mailshot est conçu pour pouvoir fonctionner avec Mandrill, je ne connais pas mais c’est lié à Mailchimp, c’est du sérieux, mais c’est un service cloud américain.
      Pour ma part j’utilise les services de Mailjet (boite française), il suffit de configurer les paramètres SMTP qu’ils donnent dans la config de mailshot, et l’envoi se fait par eux : ils filtrent les erreurs, les signalements spams.
      (cf ma réponse en dessous du 08/09 19h42)
      PS : ces services sont payant, mais apportent une vraie plus value, et peuvent éviter à votre propre serveur de se retrouver black listé.

    • Merci du commentaire mais la question n’est pas tout à fait celle-ci.
      Voici l’intégralité de la réponse du support de l’hébergeur DRI :
      « Si vous utilisez le serveur mail de l’hébergement plutôt qu’une plateforme de mailing spécialement conçu pour cela, ces serveurs ont des mécanismes de protection contre l’envoi de spam et limite la fréquence d’envoi.
      Il faut donc limiter la fréquence d’envoi, le serveur mail de l’hébergement n’acceptant pas plus de 3 connections par seconde pour l’ensemble des sites hébergés.
      Nous fournissons des services de mailing spécialement conçu pour cela qui offre la possibilité d’envoyer plusieurs milliers de mail en toute sécurité. Ce service est disponible dans votre pack
       ».
      La question est plutôt de savoir comment utiliser éventuellement ce service sans perdre le bénéfice du plug-in newsletter qui nous convient tout à fait.
      Merci

    Répondre à ce message

  • 3

    Bonjour , simple question :
    Une intégration de l’API Mailjet est-elle prévue ?
    Ne serait-ce que pour concurrencer Mandrill....

    Sinon vraiment chapeau bas pour le boulot de Newsletter !

    Un grand merci !!!

    • API Mailjet prévue, mais pas encore implémentée :(

    • Pour info, il est déjà possible d’utliser Mailjet en configurant simplement Mailshot avec les paramètres SMTP fournis (dans "Mon compte) :
      adresse du serveur, clé (utilisateur), mot de passe, et hop, les mails sont envoyés par Mailjet, on retrouve tous les envois sur son tableau de bord.

      Un truc intéressant aussi : pour chaque liste de contacts chez Mailjet, il y a une adresse mail unique qui est créée (dans les infos sur la liste).
      Il suffit d’envoyer un mail à cette adresse (avec le SMTP Mailjet, bien sûr) pour diffuser à toute la liste.
      Ce qui permet de diffuser à des milliers de contacts en envoyant un seul mail.

    • « paramètres SMTP fournis (dans "Mon compte) »

      Je voulais dire : dans la config de Mailshot, choisir "Serveur SMTP" et renseigner les paramètres SMTP fournis par Mailjet.

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom