Facteur

Un plugin pour regrouper toutes les fonctions avancées autour de l’envoi de courriels.

Introduction

SPIP propose une fonction générique envoyer_mail() pour envoyer un courriel. Elle est assez simple d’utilisation mais peut paraître limitée lorsqu’on veut configurer des options plus complexes : envoi par SMTP, ajout de pièces jointes, etc.

Le plugin Facteur propose d’intégrer proprement à SPIP la librairie PHPMailer. Pour que les fonctionnalités soient immédiatement disponibles, Facteur surcharge de manière compatible la fonction envoyer_mail().

Installation

Version 1.8.11

Placer le contenu du paquet ZIP dans votre dossier plugins/ et activer Facteur dans l’interface d’administration des plugins.

Vous pouvez configurer les options d’envoi (SMTP notamment) en cliquant sur Configuration, puis sur Facteur.

Appel de la fonction

// Chargement de la fonction
$envoyer_mail = charger_fonction('envoyer_mail', 'inc/');
// Utilisation
$ok = $envoyer_mail(...);

Utilisation

Voici d’abord la fonction standard de SPIP :

  1. function inc_envoyer_mail($destinataire, $sujet, $texte, $from = "", $headers = ""){}
  • $destinataire : adresse de courriel du destinataire
  • $sujet : sujet du courriel
  • $texte : texte brut du message
  • $from : adresse de courriel de l’envoyeur
  • $headers : ajout d’entêtes supplémentaires au message

Avec le plugin Facteur, vous pouvez déjà utiliser cette fonction de la même façon. Ce qui signifie que le plugin ne casse pas l’existant si votre code l’utilisait déjà.

Voilà comment est déclarée la fonction dans Facteur et ce qui change :

  1. function inc_envoyer_mail($destinataire, $sujet, $corps, $from = "", $headers = ""){}
  • $destinataire : peut être le destinataire ou bien un tableau où chaque ligne contient un destinataire
  • $corps : peut être le texte brut ou bien un tableau associatif contenant toutes les options de message

Description des options

Le tableau $corps des options se présente comme suit :

$corps = array(
	'options' => 'valeur'
);

Et voici les options possibles :

  • html : le corps du message en version HTML
  • texte : le corps du message en version texte brut
  • nom_envoyeur : le nom de l’expéditeur
  • cc : une ou des adresses de courriel à mettre en copie, soit une adresse en chaine de caractère, soit plusieurs adresses dans un tableau
  • bcc : la même chose mais en copie cachée
  • repondre_a : l’email à qui les réponses seront adressées, très utile dans le cas d’une utilisation d’un SMTP externe, qui va forcer l’envoi par un nom de domaine bien précis, dans ce cas, l’expéditeur est ce nom de domaine, et le « repondre_a » devient l’email de la personne qui devra recevoir la réponse (d’un help desk par exemple)
  • pieces_jointes : un tableau décrivant les pièces jointes, chaque élément est lui-même un tableau associatif décrivant une pièce jointe comme ça :
    • chemin : le chemin complet du fichier (chemin sur le file system, pas une URL)
    • nom : le nom du fichier
    • encodage : comment sera encodé le fichier, par exemple « base64 »
    • mime : le type MIME du fichier

Exemple :

$corps = array(
   ’html’ => $message,
   'cc' => array('truc@truc', 'bidule@bidule'),
   ’pieces_jointes’ => array(
           array(’chemin’ => $chemin_absolu,
           ’nom’ => ’azerty’,
           ’encodage’ => ’base64’,
           ’mime’ => ’image/jpeg’)
           )
    );

Exemples d’usages

-  On pourra par exemple utiliser un squelette existant pour générer le message HTML :

  1. $html = recuperer_fond("inclure/mail", array('id_article' => $id_article));

-  Inversement, on pourra générer la version texte du message à partir de sa version HTML en utilisant la méthode html2text de la classe Facteur :

include_spip('classes/facteur');
$texte = Facteur::html2text($html);

-  Enfin, on pourra rassembler ces éléments dans le tableau avant de les envoyer :

$corps = array( 
    'html' => $html, 
    'texte' => $texte, 
    'nom_envoyeur' => $nom_envoyeur 
     );

Activer le mode débug

Si l’envoi des envois échoue, vous pouvez activer le mode débug
Ajouter dans votre fichier config/mes_options.php

define('_LOG_FILTRE_GRAVITE', 8);
define('_FACTEUR_DEBUG_SMTP',4); // 0,1,2,3,4  est la valeur la plus verbeuse

Dernière modification de cette page le 1er avril 2018

Discussion

120 discussions

  • 22

    bonjour,
    un mail de test avec facteur arrive bien dans ma boite mais un mail avec le formulaire contact de spip 3.2 arrive en spam. Avez vous une idée du pb ?

    • Un mail au même destinataire ? Un problème de qui est dans le champ « from » ? La même chose dans les deux ?

      Pour savoir pourquoi un mail est en spam, il faut regarder les entêtes de l’email, normalement le système d’antispam du fournisseur ajoute des infos (enfin si c’est le fournisseur qui l’a mis en spam et pas le client email final comme thunderbird ou autre). Donc faut faire voir la source de l’email et copier les entêtes concernant le spam.

    • j’ai fait plusieurs tests avec des destinataires différents ( orange, gmail ) et des envoyeurs ( orange, gmail) avec bien sur le même destinataire/envoyeur dans le test contact et dans celui facteur.

      résulats des test :

      https://www.mail-tester.com/test-5en2f
      https://www.mail-tester.com/test-bagjo

    • Bah aucun n’est du spam donc. Après la règle FREEMAIL_FORGED_REPLYTO de spamassassin, qui fait un peu baisser, je ne sais pas à quoi elle correspond

    • apparemment je n’avais pas remplis la case reply de facteur ... mais bon cela ne change rien

    • Le plugin FACTEUR surcharge le formulaire de contact de spip ( dans la dist).

      J’avais ce formulaire contact dans le dossier formulaire du dossier des squelettes ... donc je surchargeais à mon tour par le formulaire de contact d’ ou le pb de mise en indésirable des mails envoyé par des internautes via le site avec Facteur activé.

      une fois ce formulaire enlevé —> Cela fonctionne très bien

    • Bonjour,

      J’ai le même problème que Baloo depuis un peu plus d’un mois sur un spip 3.1 avec formulaire de contact avancé + facteur (tous deux à jour). Avant cela et depuis des mois, ça fonctionnait parfaitement et rien n’a été changé au moment où le problème est apparu.

      Contrairement à Baloo, je n’ai pas surchargé le formulaire donc ça ne vient pas de là.

      Je reçois l’email test envoyé via le plugin facteur mais pas un mail envoyé via le formulaire en ligne. Si je désactive Facteur, je reçois le mail envoyé via le formulaire.

      Un test sur mail-tester (avec facteur activé) me renvoie des infos étranges, indiquant notamment que le SPF record n’est pas renseigné sur le domaine (alors qu’il l’est) et me donne un SPF différent de celui qui y est (et qui est correct).

      https://www.mail-tester.com/test-18ucz

      J’avoue ne pas avoir grand chose comme compétence dans la config des domaines et des serveurs et que j’ai un peu de mal à décrypter tout ce que me renvoie mail-tester, mais j’ai le sentiment que c’est l’adresse email forcée dans le from par Facteur qui fout le b***.

    • Pour info je n’avais pas surcharger le formulaire de la dist mais je l’avais placé dans squelettes/formulaires.
      avec le temps, je modère ma réponse... cela fonctionne en partie une fois ce formulaire enlevé.. Je n’ai plus de pb avec mon adresse ( orange) et celle reconnue par le serveur ( celle dans identité spip) par contre tous les emails ( free,..) ne fonctionnent pas correctement dès qu’il y a facteur et fonctionnent sans. .. et si j’enlève facteur ..formidable ne fonctionne plus.
      Je n’utilise pas « forcer cette adresse » car dans ce cas l’auteur/visiteur (responsable d’un groupe) qui reçoit le mail envoyé par un internaute n’a plus le mail pour répondre et je ne peux pas leur demander de regarder dans l’entête.

    • Bonjour,

      Envoyer des emails avec orange ou free pose des problèmes car les ip sont pas les bonnes.
      Il faut faire un mail tester avec une email de votre domaine pour avoir les bon retour.

    • Le pb n’est pas d’envoyer par facteur un mail, par exemple pour des mailings , cela fonctionne.
      Le pb apparait quand un internaute XX veut envoyer un mail à un auteur/visiteur du site .

      1- le test facteur est ok, l’envoi avec un e mail du domaine et depuis et vers un email orange ( et d’autres )fonctionne avec facteur. Je suis en copie sur facteur et reçois bien les mails mais le destinataire non.

      2- Le site spip a un email du domaine déclaré dans identité et facteur.

      3- Celui qui envoi le mail est un internaute LAMBDA qui écrit pour demander un renseignement .... DONC JE NE PEUX PAS MAITRISER SON MAIL
      4- Celui qui reçois le mail est un responsable de groupes, ils sont nombreux .... je ne peux pas lui donner systématiquement un mail du domaine et il y a plusieurs sites. Il y a un pb suivant le mail du RECEVEUR

      5- pas de pb si facteur est enlevé

      j’ai contourné le pb en mettant le mail du domaine ( celui déclaré dans le site) en copie systématique et en faisant router sur chaque site ce mail vers un responsable de l’assos du site qui se charge de redistribuer les mails aux destinataires ..

    • En fait l’idéal est de définir l’adresse du webmaster du site en tant qu’émetteur et mettre l’adresse du visiteur en « reply to ».
      Comme cela tous les messages émis par le site le sont avec un adresse qui peut être correctement authentifiée par les différents serveurs et l’adresse saisie par le visiteur est visible dans le champ « répondre ». On peut en plus ajouter l’adresse du visiteur dans le corps du mail si besoin.

    • Oui effectivement c’est une bonne solution.
      Par contre, cela signifie bricoler le formulaire de contact /php ...
      ce ne serait pas possible d’avoir un exemple dans facteur ?

    • il y a une option dans facteur pour faire cela automatiquement.

    • pas bon... si je coche « Forcer cette adresse d’envoi quand le From n’est pas sur le même domaine » le mail va dans les indésirables ( destinataires orange) et de plus je ne vois pas le champ répondre sauf si je regarde spécifiquement l’entête du mail ce que je ne peux pas demander aux personnes qui reçoivent le mail.
      Le mail de test par contre arrive bien.
      je ne vois pas d’autre option

    • Franchement c’est pas très clair de quelle info est à quelle endroit là.

      Pour être très précis, normalement l’email de l’envoyeur (entête « From ») DOIT être une adresse dont le domaine est le même que le site, ou a bien l’autorisation d’envoyer par ce site (ya des techniques pour ça). Donc une adresse ou quelques adresses qui sont MAITRISÉES, et en petit nombre.

      Et ensuite si c’est un⋅e inconnu⋅e quelconque qui écrit un message, son adresse DOIT être dans l’entête Répondre à (« Reply-To »).

      Si ce n’est pas le cas, c’est qu’il y a un problème, oui.

      Mais si c’est bien le cas et que tel client webmail (de merde) d’Orange ou autre, ne sait pas utiliser l’entête « Reply-To » alors qu’il DOIT utiliser ce champ quand il est présent pour remplir le champ « To » d’une réponse, là on n’y peut rien. C’est le comportement officiel, standard, de la norme des emails. Donc si ça suit pas les normes internationales…

    • le reply to est correct mais .lorsque la case « forcer l’adresse .. » est coché le mail va dans les spams

    • Mais « Forcer l’adresse » ça veut rien dire en soi, quelle adresse, j’ai parlé de truc précis : ya quoi dans l’entête « reply-to » (mais ça on s’en fout ça peut être ce qu’on veut) et ya quoi dans l’entête « from ».

      Ce qui est dans l’entête « from » DOIT avoir un rapport avec le SMTP qui envoie les emails, normalement, sinon ça pose des problèmes de légitimité.

    • cas 1 -

      1-le mail n’est pas reçu par le receveur
      2- le mail est reçu par l’expediteur dans indesirable

      entete du mail : il y a une inversion
      To : le mail de l’expediteur X
      From : le mail du receveur Y

      des mails envoyés par un internaute X via le formulaire standard de spip #FORMULAIRE_ECRIRE_AUTEUR vers des auteurs ou visiteurs Y

      configuration suivante :
      -  dans adresse du webmestre : adresse du domaine
      -  facteur activé
      -  paramétrage facteur :
      adresse d’envoi : utiliser les paramétrage du site spip
      et forcer cette adresse d’envoi( celle du webmestre) quand l’expediteur n’est pas du même domaine
      et SMTP

    • Bonjour
      forcer l’adresse : c’est le paramétrage utilisé dans facteur pour mettre l’adresse du webmaster en envoyeur. Le formulaire est le standard spip
      Le reply to est bon, le from est bon
      désolé mais je m’étais emmêlé avec l’envoi des mails, étant connecté sur spip mon mail s’était mis en expéditeur au dernier test.

      le pb : le mail va systématiquement en indésirables chez le récepteur et la personne en copie si l’envoyeur est du domaine du serveur.
      résultat test 7.7 : https://www.mail-tester.com/test-q2qok&reloaded=1

      le mail ne va pas toujours dans indèsirables . expéditeur non remplacé par adresse du domaine
      resultat test 8.7
      https://www.mail-tester.com/test-mczd2&reloaded=1

    • Bonjour,

      De mon côté, je pense avoir trouvé la solution.

      Pour rappel :

      –> le formulaire de contact avancé seul : le mail arrivait (mais le reply to est d’office l’adresse du webmaster et c’est ça qui m’ennuie et qui me pousse à installer facteur)
      –> le formulaire de contact + facteur n’arrivait pas.

      La config, initialement (qui fonctionnait jusque mi-novembre et puis plus) :

      –> le site a un nom de domaine A
      –> l’adresse du webmaster était sur le nom de domaine B
      –> le réglage personnalisé dans facteur mentionnait une adresse gmail (le proprio du site n’a pas de client mail et ne souhaite pas la contrainte d’aller relever une boîte sur le domaine A)

      Résultat des tests

      –> Facteur avec adresse d’envoi personnalisée ET forcer l’adresse from : le mail n’arrive pas.
      –> Facteur avec adresse d’envoi personnalisée SANS forcer l’adresse from : le mail n’arrive pas.
      –> Facteur avec « réglages du site Spip » ET forcer l’adresse from : le mail arrive.
      –> Facteur avec « réglages du site Spip » SANS forcer l’adresse from : le mail arrive.

      Le souci semble donc venir de l’option « Personnaliser ces réglages » de Facteur.
      J’ai remis l’adresse Gmail du proprio comme adresse du webmaster dans la config générale du site Spip et ça fonctionne.

      Du coup, je ne sais pas trop à quoi sert le forçage de l’adresse from mais bon... :)

      Je m’attaque maintenant à un nouveau formulaire via Formidable et je croise les doigts (vu que Baloo semblait avoir un souci que quand l’un fonctionnait, l’autre ne fonctionnait pas).

    • À partir du moment où Formidable est utilisé sur le site, il n’y a absolument plus d’intérêt à avoir Contact avancé, puisque justement Formidable a été créé pour pouvoir faire autant de formulaires personnalisés qu’on veut dans un même site. Donc autant n’utiliser que Formidable, c’est bien plus simple (et plus complet, et maintenu).

      Pour les réglages, la première chose qui dépend c’est *qui envoi*, quel est le serveur SMTP, celui du serveur PHP ou un autre configuré. Et ensuite tout dépend de lui uniquement, de quels adresses ce serveur SMTP accepte comme From. Et ça ben ça dépend de chaque serveur SMTP (et quand ça utilise le SMTP du serveur PHP, ça dépend de l’hébergeur).

    • « (...) il n’y a absolument plus d’intérêt à avoir Contact avancé »
      — > très juste, merci. :-)

      Chez moi, c’est réglé en PHP. Je suis chez Planethoster et apparemment, ça fonctionne avec les réglages sus-mentionnés.

    • Juste pour dire que je n’utilise pas le formulaire de contact avancé mais le formulaire standard de la dist de spip .

    Répondre à ce message

  • Bonjour,

    J’aurais bien aimer pouvoir utiliser Oauth pour se connecter avec le compte gmail pour simplifier la connexion au serveur SMTP mais cela ne semble pas possible.
    J’ai vu dans le code des traces d’authentification Oauth mais ça ne me semble pas opérationnel en l’état.
    Est ce qu’il y a moyen d’activer cela ?

    Merci pour vos réponses

    Répondre à ce message

  • Bonjour,
    Impossible d’utiliser depuis un hébergement mutualisé OVH
    J’ai essayé plusieurs configurations en PHP ou en SMTP.
    Avez-vous une idée ?
    Merci
    Cordialement

    Répondre à ce message

  • 6
    Jaseur Boréal

    Bonjour

    Facteur affiche SMTP Error : Could not connect to SMTP host. lors de tests d’envois par le sous-domaine SMTP de mailjet "in-v3.mailjet.com". Pourtant les tests-infolettres du plugin Newsletters partent correctement et sont réceptionnées dans les minutes suivantes. Je n’ai pas testé d’envois réels d’infolettres.

    Merci de toutes solutions pour optimiser les réglages sur un spip 3.2 à jour avec « Facteur 3.5.0 » + « MailShot 1.22.4 » et "Newsletters 1.5.3 " dernières versions stables.

    J’ai vérifié que dans « Facteur » et dans « Mailshot » les réglages de ports soient similaires.

    Les tests de départs de courriels de Facteur semblent tourner indéfiniment avant d’afficher des erreurs type : « SMTP Error : Could not connect to SMTP host. »
    Les emails de tests ne partent pas quelques soient les réglages de port ou de connexion sécurisée TLS , SSL ou pas. J’ai aussi posé la question à Cédric pour Mailshot

    Hier, à ma demande, les techniciens chez Mailjet ont migré mon compte d’une vieille version « V1 in.mailjet.com » vers la dernière version « in-v3.mailjet.com ».
    Les clés ne changent pas, seul le réglage du choix de sous-domaine Mailjet a été modifié dans Facteur & Mailshot pour la V3 avec la configuration de Mailshot bien enregistrée.

    Les réglages actuels, tels qu’ils fonctionnaient auparavant :

    • Réglages utilisés du plugin Facteur & Mailshot :
    • Utiliser SMTP Hôte : in-v3.mailjet.com
    • Port : 465
    • Requiert une authentification : oui
    • Nom d’utilisateur : xxxx
    • Mot de passe : yyyy
    • Connexion sécurisée : TLS (recommandé
    • Validation du certificat SSL le certificat SSL du serveur SMTP est émis par une Autorité de Certification (recommandé).

    Avez- vous une idée d’un réglage oublié ?

    Merci pour toute piste de solution.

    • Bonjour
      Un problème vient d’apparaître lors de l’envoi de notre infolettre.
      SMTP Error : Could not authenticate.
      nous avons deux plugins pour notre infolettre
      mailshot & facteur, nous n’avons rien touché depuis notre dernier envoi qui avait bien fonctionné.
      Pouvez vous nous aider à trouver le problème ?
      merci
      Fred
      www.goupilconnexion.org

    • Changement chez votre hébergeur ? Du genre politique de sécurité, TLS etc ? Ou modification de votre mot de passe du compte email utilisé ?

    • Ok merci
      je vais voir chez notre hébergeur.
      Pour notre configuration est ce que cela vous parait correct ?
      merci
      Fred

      -  Utiliser SMTP OUI

      -  Requiert une authentification OUI

      Connexion sécurisée : =>SSL (déprécié)
      Validation du certificat SSL =>le certificat SSL du serveur SMTP est auto-signé.
      Adresse de retour des erreurs (optionnel) =>Définit dans l’entête du mail l’adresse email de retour des erreurs (ou Return-Path)

    • Bé je ne peux rien en savoir, c’est à la doc de ceux chez qui vous avez votre serveur SMTP de dire ce qui convient. :)

    • OK merci je vais voir de ce coté
      Fred

    • OVH me confirme que tout va bien sur mon courrier et les smtp et autre sont bien configurés.
      pas facile cette histoire !
      qu’est ce que je pourrait bien vérifier ?

    Répondre à ce message

  • 3

    PROBLEME AVEC SPIP 3.2 et FACTEUR 3.4.11

    Depuis la mise à jour SPIP, le lien de confirmation dans un mail est codé avec des balises HTML visible :

        <pre> <br><center><span style="display: inline-block;"><!--[if mso]>
        <v:roundrect xmlns:v="urn:schemas-microsoft-com:vml"
        xmlns:w="urn:schemas-microsoft-com:office:word"
        href="https://reporterre.net/spip.php?action=confirm_mailsubscriber&email=dominique.lhermite%40sfr.fr&arg=734b29e5ce522029c45b93f4abbb35bcae0e87d9"
        style="height:40px;v-text-anchor:middle;width:250px;" arcsize="10%"
        strokecolor="#1e3650" fillcolor="#556270"> <w:anchorlock/> <center
        style="color:#ffffff;font-family:sans-serif;font-size:13px;font-weight:bold;">M'inscrire
        à la Newsletter</center> </v:roundrect> <![endif]--><a
        href="https://reporterre.net/spip.php?action=confirm_mailsubscriber&email=dominique.lhermite%40sfr.fr&arg=734b29e5ce522029c45b93f4abbb35bcae0e87d9"
        style="background-color:#556270;border:1px solid
        #1e3650;border-radius:4px;color:#ffffff;display:inline-block;font-family:sans-serif;font-size:13px;font-weight:bold;line-height:40px;text-align:center;text-decoration:none;width:250px;-webkit-text-size-adjust:none;mso-hide:all;">M'inscrire
        à la Newsletter</a></span></center><br> </pre>

    Le fichier /newsletter/emails/inc-button.html serait en cause.

    Possible de le revoir ou bien on tripatouille dans le php ?

    Merci à vous,
    Julien

    • Ce code vient du plugin Newsletters, pas de Facteur non ? Plutôt demander dans le forum du plugin en question ?

      Enfin je ne sais pas mais « emails/inc-button » est dans Facteur, mais ya pas « newsletters/emails/inc-button » ça ça n’existe pas.
      Et dans le plugin Newsletters il y a un « newsletters/inc/button » par contre.
      Donc ya confusion là…

      Il y a des « pre » généré, mais pourquoi ? Comme une sécurité on dirait.

    • Le code HTML problématique venait bien du plugin facteur (génération d’un bouton de lien), mais le bug provenait d’une incompatibilité entre une nouvelle mesure de sécurité de SPIP 3.2 et le plugin newsletter ou facteur.

      En tout cas, tout est corrigé par les auteurs de ces plugins ! Merci à eux.

    • Pas pour moi - j’ai réinstallé le plugin facteur mais le problème persiste...

    Répondre à ce message

  • 4

    Ça serait quand même bien pratique de pouvoir envoyer un mail avec un contenu html qui utilise lui aussi l’habillage générique utilisé pour les mails en texte.

    Qu’on puisse faire $envoyer_mail($dest, $sujet, $texte, $exp); tout simplement, et que le facteur compose tout seul en multipart, que $texte soit du html ou pas :

    • la partie texte brut avec Facteur::html2text($texte)
    • la partie html avec recuperer_fond("emails/texte",array('texte'=>$texte,'sujet'=>$sujet));

    Du coup, le nom du template emails/texte ne serait plus logique, mais à garder pour la compat.

    Qu’en pensez vous ?

    • En fait ya déjà une fonction fournie, qui contient un test pour savoir si c’est vraiment du texte brut OU du semi-html simplifié (pas le html complet). C’est la fonction facteur_email_wrap_to_html.

      Si tu as du morceau de html basique (un texte, un bouton, un gros lien joli etc) dans un squelette, dedans tu ajoutes #FILTRE{facteur_email_wrap_to_html} et c’est tout, ton email utilisera l’entourage commun et donc cohérent avec l’ensemble de tes emails.

      On pourrait imaginer qu’il y ait un test plus compliqué/complet dans envoyer_mail qui fasse tout ça au même endroit du genre
      -  si ya aucune balise c’est du texte brut, on envoie à l’entourage dans le contexte « texte »
      -  si ya des balises, et qu’il y a </body> mais PAS </html>, c’est un html basique, on envoie à l’entourage dans le contexte « html »
      -  si ya </html> c’est un html complet, on fait rien, on le laisse comme ça

      Pour l’instant envoyer_mail fait la distinction texte brut VS html. Et le filtre à mettre dans #FILTRE fait la distinction entre texte brut et semi html et ajoute l’entourage.

    • Je confirme, #FILTRE{facteur_email_wrap_to_html} fonctionne bien, dans les /mails comme dans les /notifications

      J’ai donc surchargé celles de Formidable parce que de base elles sont vraiment toutes moches : une liste de saisies brutes en Times, noir et blanc, sans entête, avec juste un peu de gras pour égayer.
      C’est pas le Pérou mais ça fait un peu moins brut de décoffrage.

      On pourrait peut être leur mettre ce filtre par défaut, non ?

    • Si ya bien toutes les dépendances (à priori oui puisque ça nécessite Facteur), carrément oui !

    • nicod, cela donnerait quoi en capture d’écran ? Parce que personnellement je trouve que les mails de notifs que je recois avec notifications sont hyper chargé. Il y a un entête hyper long avant d’arriver au contenu. Le côté hyper sobre des mails de Formidable, j’apprécie. On arrive directement aux réponses...

    Répondre à ce message

  • 5

    Bonjour,
    Petit soucis sur 2 de mes sites qui sont chez des hébergeurs différents. Alors que jusque là les messages fonctionnaient très bien, aujourd’hui impossible d’envoyer des messages depuis les sites et la fonction test de facteur (quelle que soit la config choisie php ou smtp) ne fonctionne pas et retourne des erreurs ou alors me dit que l’email test a été envoyé mais en fait on ne reçoit rien.
    Je ne vois pas où est le problème.
    SPIP 3.2, Escal v3.87.47, PHP 5.6.8 pour l’un et 5.4.45 pour l’autre
    Yann

    • Mais « aujourd’hui » quoi ? Tu as fait des modifs entre temps ? Si le plugin n’a pas bougé, c’est que ça viendrait d’un autre changement ?

    • Je n’ai fait aucune modification. Les seuls plugins qui ont étémis à jour sont : Agenda, Escal et Saisies. L’un de mes sites utilise la fonction mail de PHP. Quand j’utilise la fonction tester de facteur, 9a me dit que l’email est envoyé mais je ne reçois rien. Quand j’essaie sur le site public j’obtiens le message d’erreur : Erreur : à cause d’un problème technique, l’email ne peut pas être envoyé.

      Pour l’autre site qui est chez un autre hébergeur, j’utilise SMTP. Le test dans facteur me donne le message : SMTP Error : The following recipients failed : webmestre45@free.fr : : Relay access denied
      et en testant sur le site public j’obtiens : Erreur : à cause d’un problème technique, l’email ne peut pas être envoyé.

    • Il me semblait qu’avant l’envoi du message il y avait une prévisualisation. Or je n’ai plus cette prévisualisation.

    • Bah ça ressemble plus à un problème SMTP chez ton prestataire.

      Dans tous les cas, moi qui suis aussi chez Free, ya eu au moins 2j complet depuis le week-end avec des coupures complètes, aucun mail qui n’arrivent et parfois qui partent mais lentement.

    • Bonjour,
      Merci. Je me suis rapproché de mon prestataire et effet quelques règles avaient changé. J’ai donc paramétré en conséquence et tout fonctionne. Pour le second site qui est chez Free, je comprends mieux s’il y a eu 2 jours de coupure. Cela semble fonctionner de nouveau.

    Répondre à ce message

  • J’ai toujours des soucis avec l’envoi d’emails. Sur l’un des sites, j’ai désactivé tous les plugins non nécessaires et je n’ai laissé que ceux nécessaires aux emails (facteur, formulaires de contacts avancés, formidable. J’ai fait un test d’envoi à partir du site et j’ai été obligé de cliquer 3 fois avant d’obtenir le message d’envoi. Les 2 premières fois un message m’invitant à renouveler l’opération s’affichait. Je n’ai rien reçu dans la boîte mail, par contre le message est bien enregistré (3 fois) dans Spip. J’y perds mon latin.
    Yann

    Répondre à ce message

  • 5

    Bonjour et merci pour ce plugin,

    Ce n’est pas une question mais une suggestion afin de rendre compatible le plugin pour les version 2.0,2.1 de SPIP avec PHP 7.
    J’ai réussi à le faire fonctionner en remplaçant des fonctions qui n’existe plus dans /auto/facteur/phpmailer-php4/class.phpmailer.php :
    -  ligne 470 :

    1. $toArr = split(',', $to);

    =>

    1. $toArr = explode(',', $to);


    -  j’ai commenté les lignes 1217, 1218 et 1222 car tout ce qui magic quotes n’existe plus, il faudrait donc ajouter une condition selon la version de PHP
    -  ligne 1723 :

    1. $fileParts = split("\.", $filename);

    =>

    1. $fileParts = preg_split("\.", $filename);
    • En fait je me rend compte que ce n’est pas phpmailer-php4 qui doit être appelé mais phpmailer-php5.
      Le problème vient de ces lignes dans classes/facteur.php :

      if (intval(phpversion()) == 5) {
      	include_spip('phpmailer-php5/class.phpmailer');
      	include_spip('phpmailer-php5/class.smtp');
      } else {
      	include_spip('phpmailer-php4/class.phpmailer');
      	include_spip('phpmailer-php4/class.smtp');
      }

      Comme la version est 7 il va dans le else et charge phpmailer-php4...

    • Merci,

      corrigé.

      https://zone.spip.org/trac/spip-zone/changeset/106412
      Mais attention, il est pas certain que d’autres fonctionnalités de SPIP 2.1 soient compatibles PHP 7.

    • Merci.
      Il me semblait que SPIP 2.1 était compatible avec PHP 7. En tout cas je n’ai pas eu de problème jusqu’ici.

    • Non 2.1 n’est pas du tout officiellement compatible PHP7, il n’y a aucune assurance que ça marche bien partout et que ça continue de marcher au fil du temps. Il était même question de créer une nouvelle branche 2.X dédiée pour assurer la compat PHP7, mais donc la 2.1 ne l’est pas même si certains trucs peuvent fonctionner. Le conseil est donc plutôt de rester sur un PHP5.X, et si on ne contrôle pas l’hébergement, le mieux (et dans tous les cas c’est le mieux) est de migrer vers SPIP 3.X.

    • Je m’étais référer à ce lien https://contrib.spip.net/SPIP-et-PHP7 qui sort en premier sur google avec la recherche « spip 2.1 php 7 » mais il semblerait qu’il s’agisse plutôt d’un brouillon.
      Effectivement cette page https://www.spip.net/fr_article4351.html ne mentionne pas de compatibilité. Ceci dit ça tourne sans problème chez moi, c’est parfois les plugins qui peuvent poser problème.

    Répondre à ce message

  • 3

    Bonjour,
    J’ai un souci lors de la configuration de Facteur avec le smtp de Gandi en simple hosting, le nom d’hôte indiqué par Gandi : « ssl ://mail.gandi.net » est considéré comme n’étant "pas correct" par le formulaire.

    Problème de fonction vérifier ou type d’adresse smtp non conforme au standards ?

    • Essaye plutôt de juste mettre le domaine, et de cocher que c’est en SSL.

    • Merci, ça a bien fonctionné.

    • gillesq, peux-tu me dire exactement quels réglages tu as mis pour le facteur ?

      De mon côté j’ai fait de nombreux tests sans succès.

      actuellement mon réglage est le suivant :
      Hôte : gandi.net
      Port : 465
      Authentification : email complet + mot de passe
      Connexion sécurisée : SSL
      Validation : le certificat SSL du serveur SMTP est émis par une Autorité de Certification (recommandé).

      avec comme hôte mail.gandi.net le résultat est le même :
      « SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting »

      Merci d’avance,

      Hervé

    Répondre à ce message

Ajouter un commentaire

Qui êtes-vous ?

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