Publication par email

Cette contribution ou ce plugin est en phase de test. Des bugs peuvent subsister. N’hésitez pas à les signaler dans le forum ci-dessous.

Permet de publier vos articles par email

Avertissements

Ce plugin est expérimental. Le chantier est ouvert, n’hésitez à contribuer.

Scénario d’utilisation

Claire utilise un site SPIP avec un compte auteur dans lequel elle a renseigné le champs email claire@jaimespip.org.

Elle souhaite publier des articles dans son site depuis son téléphone portable ou depuis un cybercafé douteux sans passer par l’interface web classique http://monsite.tld/ecrire/

  1. Elle se crée donc un nouvel email pour publier publication4655@gmail.com
  2. Sur gmail, elle active bien l’option IMAP pour s’authentifier à distance
  3. Sur son site SPIP, Elle configure le plugin Publication par email avec l’email publication4655@gmail.com en testant bien si l’authentification fonctionne bien
  4. Comme toutes les boites se font spammer, elle ajoute le prefixe « pub » dans la configuration du plugin. Comme cela, même si google lui envoie des messages, ils ne seront pas publiés comme articles.

Elle peut maintenant poster ces articles par email :

  1. Elle écrit un message à publication4655@gmail.com avec son email claire@jaimespip.org avec comme sujet « pub : Mon premier article SPIP »
  2. Le site recoit le message, il reconnait le préfixe pub et publie donc l’article Mon premier article SPIP en associant Claire comme auteur (puisque l’email a été envoyé depuis claire@jaimespip.org)

Claire est contente ! Elle décide d’inviter Daniel, un autre rédacteur de son site à publier par email. Inutile de toucher au plugin, il suffit juste de donner à Daniel l’email publication4655@gmail.com et le préfixe pub (qui sert aussi dans ce cas de figure de mot de passe).

Requis

Le plugin requiert l’extension php php_imap.
Cette extension est souvent activée sur les hébergeurs (vous pouvez vérifier en consultant la page ecrire/?exec=info ).
Pour les installations locales (par exemple sous Windows WAMP) il faut l’activer car elle n’est pas activée par défaut.

Configuration

Après installation du plugin, renseigner dans le panneau de configuration les paramètres de la boite email (identifiant, serveur et port, mot de passe).

Cet email doit être consultable via le protocole IMAP.
Il est conseillé de se créer une adresse email dédiée à cet usage (plutôt que d’utiliser un email personnel)

Il faut aussi renseigner :

Statut des articles importés proposé ou publié
id_rubrique id de la rubrique destination
Mot de passe (facultatif) Préfixe / Phrase secrète à ajouter dans le sujet de l’email pour qu’il soit traité par le plugin.
Si ce champs est vide, tous les emails seront importés

Lorsque vous validez votre configuration, le plugin teste si la connexion à votre boîte email est valide ou non.

Configuration IMAP

Les paramètres IMAP varient beaucoup d’un fournisseur à l’autre. Demandez au service technique, les paramètres précis.

Voici à titre d’exemple quelques paramétrages

FournisseurServeurPortDossier distantRemarques
Gmail imap.gmail.com 993/imap/ssl INBOX Activer l’IMAP dans vos préférences
free.fr imap.free.fr 143/notls INBOX
Yahoo pop.mail.yahoo.com 110/pop3/novalidate-cert INBOX Activer POP dans vos préférences
Ouvaton imap.ouvaton.coop 143 INBOX

Utilisez le forum si vous voulez compléter cette liste.

Astuce Gmail vérifie l’identité et l’IP de la personne relevant la boite. Si vous avez des difficultés de connexion, connectez-vous à votre compte gmail et validez les messages de sécurité pour autoriser le serveur sur lequel est installé le plugin à relever votre boite.

Fonctionnement

Toutes les 15 minutes, le plugin consulte les derniers messages de la boite email.

  • Si un préfixe est défini, seuls les emails comportant ce préfixe (mot de passe) seront traités.
  • Si l’email de l’expéditeur correspond à un auteur du site, il sera ajouté à l’article créé.

Pour forcer la synchronisation manuellement, vous pouvez aller dans le menu > Liste des travaux > emailtospip.

Formatage des emails

  • Si vous utilisez les raccourcis de SPIP, envoyez vos emails en format brut (texte)
  • Si vous envoyez vos emails en format HTML, le HTML sera importé tel quel. Attention : à utiliser avec précaution si vous souhaitez conserver une base de données propre.

TODO

  • En mode HTML, filtrer le texte avec la fonction sale() ou équivalent pour retrouver la formatage de SPIP
  • Gérer les emails avec des images incorporées dans le corps d’email
  • Gérer les pièces jointes
  • Gérer une pseudo syntaxe pour gérer attribuer des mots-clés ? une rubrique ? des événements ?
  • ...

Merci à Fa_b pour son travail de bêta-testeur.

Discussion

14 discussions

  • 1

    bonjour

    merci pour ce plugin qui fonctionne dans les grandes lignes.

    mais l’article importé ne comporte pas de titre, donc n’est pas cliquable dans l’interface privé.

    où met-on le titre quand on écrit l’email ?

    merci

    Répondre à ce message

  • Le plugin marche très bien sous SPIP 3.2.0-alpha SVN [23491] avec notre serveur IMAP.

    Il faudrait encore travailler les filtres d’importation car actuellement il ne maîtrisent pas encore les messages au format HTML avec des fichiers attachés. Ces messages sont bien importés avec leur sujet mais le contenu ressemble au travail d’un chimpanzé qui essye de reproduire les oeuvres de Shakespeare ;-)

    Pour les emails au format texte sans fichier attaché c’est parfait.

    Répondre à ce message

  • 1

    Bonjour et merci pour ce plugins qui est à mon avis une trés bonne initiative.

    Voila quelques bugs qu’il me semble avoir constaté :

    -  Il semble que les e-mails qui contiennent une apostrophe dans le sujet ne soient pas pris en compte (notamment lorsque l’on met un mot de passe en début)
    -  il semble que lorsqu’on transfere un e-mail vers la boite mail censée rediriger les articles, celà ne fonctionne pas (peut-être à cause des pièces jointes ?) et l’article mis en ligne sur spip est rempli de caracteres, ce qui rend le message absolument incompréhensible.

    Une petite suggestion :
    Serait-il possible dans les versions à venir, de déplacer les messages traités vers un autre dossier de la boite mail (exemple : (INBOX/publies) plutot que de supprimer le message du serveur ? Un petit test de mon coté en remplacant « imap_delete($mbox, $uid, FT_UID) ; » par imap_mail_move($mbox, (string)$uid, « INBOX/publies », CP_UID) dans le fichier emailtospip semble fonctionner correctement ; cela laisse de la lattitude aux administrateurs pour publier les messages qui ne seraient pas passés à cause d’un bug.

    Merci pour votre réponse.

    • Bonjour

      Je n’ai pas le temps actuellement de contribuer à ce plugin mais n’hésitez pas le modifier sur le zone, si vous trouvez des modifications qui pourraient profiter à tout le monde.

    Répondre à ce message

  • 1
    theopedie

    Bravo pour le plugin. Je me permets une suggestion d’amélioration. Pour l’instant, on ne peut publier que dans une catégorie. Pourrait-il on envisager deux cas de figures ?
    -  après le préfixe pub, rajouter un numéro de rubrique. Par exemple « pub78rubTITRE » pour que l’article TITRE soit publié dans la rubrique 78
    -  si rien après le préfixe, dans une rubrique par défaut renseigné dans le CFG.

    Répondre à ce message

  • 2
    Abdoul Kader Ouedraogo

    Bonsoir, j’ai des problèmes pour me connecter. ça me met erreur avec mon compte gmail et aussi mon compte yahoo.

    Erreur : Impossible de se connecter à
    pop.mail.yahoo.com:110/pop3/novalidate-certINBOX

    Erreur : Impossible de se connecter à
    imap.gmail.com:993/imap/sslINBOX

    J’ai bien activé les transfère pop et imap dans mes compte qui fonctionne déjà avec outlook.
    D’ou peut venir mon problème ?

    IMAP est bien activé avec mon hebergeur e-clicking.
    « »
    Merci d’avance

    • Je viens de faire l’essai sur un compte gmail, ca fonctionne au poil… Il doit y avoir un pb de configuration quelque part chez vous. Bien se reporter à la section Configuration IMAP de cette même page.

    • theopedie

      meme probleme chez moi, résolu en deux étapes :
      1) Gmail envoie un message pour demander de désactiver une option parano
      2) il existe une deuxième option parano secrète qu’il faut parfois aller voir : http://www.google.com/accounts/DisplayUnlockCaptcha

      Peut être faudrait-il prévenir les utilisateurs de gmail dans le corps de l’article. Je vous laisse voir. En tout cas, super le plugin

    Répondre à ce message

  • 3
    awelvor

    bonjour

    j’ai tenté d’installer ce plugin sur spip 3.0
    réponse :
    Publication par email 1.1.0 experimental
    version incompatible

    comment résoudre ?
    awelvor

    • il faut un SPIP 3.0.7 ^_^

    • klaus++

      Merci pour ta contribution ! Est-ce qu’il es difficile d’utiliser ton plugin avec mon propre serveur IMAP ?

    • non ce n’est pas compliqué. il faut juste bien configurer ton compte avec tes paramètres de ton serveur IMAP et cela devrait fonctionner

    Répondre à ce message

  • Bonjour,

    Tout d’abord bravo pour ce plugin très utile et très novateur.
    J’essaie de m’en servir afin de pouvoir publier automatiquement les annonces faites sur une liste universitaire, en rapport avec l’enseignement de la philosophie. La liste est une liste de diffusion qui se trouve chez free.fr . Le libellé de la liste : Educasup. J’ai donc choisi comme mot filtrant dans le sujet du message : [Educasup] .
    Voici les principales difficultés que je rencontre :
    J’ai pu constater que si je ne mets pas de mot pour filtrer, le plugin marche mieux. Certains emails avec pour sujet [Educasup] ne passent pas du tout quand je mets ce filtre (pourtant indispensable). D’autre part, très souvent quand ils passent, la plupart du temps le corps du message est totalement effacé, à part les premiers mots. Est-ce que le problème vient de l’encodage des messages ? J’aimerais réussir à utiliser efficacement votre plugin, mais pour l’instant ce n’est hélas pas très concluant.
    Je suis tout disposé à vous aider en faisant une série de tests.
    Bien cordialement
    Joseph

    Répondre à ce message

  • Bonjour,
    Je pense avoir configuré correctement le plugin, (compte mail en fait gmail, répertoire d’acceuil préfixe etc ...

    Après validation la réponse est : « OK. Les fonctions IMAP sont disponibles » et Authentification réussie !

    il y a bien des mails avec le bon préfixe présent dans la boite GMAIL, l’expéditeur de ces mails est rédacteur du site, le répertoire est existant mais par contre aucun article n’est créé.

    Il est peut être possible qu’il y ait un problème d’autorisation à mon compte GMAIL mais là je coince.

    Des idées ?

    Patrick
    PS : ce plugin a vraiment l’air intéressant pour ce dont j’ai besoin.

    Répondre à ce message

  • 5

    Très intéressant évidemment.

    De part mes maniaqueries habituelles, la première chose qui me vient à l’esprit c’est : il faudrait découper cette fonctionnalité en plusieurs morceaux complémentaires. Je ne sais pas si tous les morceaux devraient être dans des plugins différents ou dans un même plugin quand même, ça dépendra de la grosseur.

    Ainsi, un noyau saurait gérer les récupérations des mails, et c’est tout. Ensuite il déléguerait à d’autres fonctions pour le traitement de ces mails, suivant des paramètres, qu’il trouvera dans le sujet ou dans les premières lignes du corps du message par exemple. En effet, à partir du moment où on sait que SPIP sait gérer une boite mail, alors de multiples usages peuvent être utiles.

    • En premier lieu publier n’importe quel objet éditorial, pas juste des articles. Et pas « en dur » mais génériquement, càd en marchant pour un objet rajouté par un plugin. Suivant les droits de la personne qui envoie le mail bien sûr (s’il n’a pas le droit publier une Patate, ça ne fait rien).
    • Ça peut aussi être : répondre à un message de forum en répondant à un mail de notification qui nous est envoyé
    • Ou encore : faire de la modération en renvoyant un mail ayant tel ou tel paramètre à une notification (pour un forum ou une demande de validation d’un article, etc)

    Bref ça peut être intéressant pour plein de choses, en n’étant pas obligé d’aller se connecter sur le site.

    • Autrement dit, par rapport aux fonctionnalités actuelles, on aurait déjà au minimum ce découpage :

      • Un plugin imap : il sait récupérer les mails d’une (ou plusieurs ?!) boite configurée, récupérer toutes informations potentiellement utilisable : sujet, corps, mais aussi toutes les entêtes. Et il met ça dans un tableau bien complet, puis cherche à quelle fonction il doit déléguer. Ou peut-être mieux : il appelle un pipeline « trigger_imap » où il balance ce tableau, et n’importe quel plugin peut alors faire ce qu’il veut avec (ce qui veut dire que plusieurs plugins peuvent alors traiter le même mail).
      • Un plugin imag_publier_objet : utilise les informations précédentes pour trouver de quel objet il s’agit, si cet auteur (ou anonyme) a le droit de le publier (article dans telle rubrique, commentaire d’un article, etc), et enfin insérer ce qui doit l’être (l’objet et peut-être des trucs annexes si on a le droit d’ajouter des mots, etc).

      Dans un deuxième temps, d’autres plugins pourront alors s’ajouter :

      • Un plugin imap_notif_forum qui permettrait de gérer les réponses au notif des forums précisément, à la fois pour pouvoir y répondre, mais pourquoi pas aussi pour modérer.
      • Un plugin imap_notif_article qui permettrait aux admins de modérer un article en répondant à la notif de demande de validation (par exemple).
      • Et sûrement plein d’autres idées !
    • Il s’agit d’une première mouture pour tester la faisabilité et permettre une communication facile hors backoffice (par ex. un client mobile ou en voyage).

      Ensuite on pourrait en effet découper le module email et une véritable API de publication / administration (qui pourrait aussi servir pour des app. ou des clients soap, rest, ....)
      Il me semble que Kent1 a déjà travaillé dans ce sens

      La lecture des emails n’est pas forcement triviale vu le nombre d’exceptions et de structures (plain / alternative / ...) mais cela vaut sans doute le coup.

    • En fait l’API de publication/administration c’est encore autre chose je pense. Là c’est encore un niveau générique au-dessus, car ça peut servir à d’autres « voies » que celle du courriel. Mais pour ça c’est plutôt du côté de l’API des objets (inserer, modifier, instituer, etc) et de CRUD.

      Là le découpage que je propose, c’est, au-delà de ce que ça utilise en bout de chaîne, de déjà pouvoir découper deux grandes zones : la récupération/gestion de l’IMAP d’un côté (pour produire un tableau ayant le plus d’informations intéressantes possibles), et de l’autre le ou les plugins utilisant ces informations de mails pour en faire quelque chose (ici dans un premier temps, ta partie déjà faite de publier un article).

      Je n’ai pas du tout regardé le code pour l’instant hein, mais j’ai l’impression que ce premier découpage pourrait déjà être fait assez facilement.

    • ++

      J’abonde dans le sens du premier message de RastaPopoulos (pas encore lu les réponses du fil de discussion) parce-que je me disais justement :

      • Ce truc conviendrait mieux à des brèves qu’à des articles parce-que le mail ne sait pas cibler les autres champs (PS, Chapo, etc.) et paramètres (dates de publication, autres auteurs et mots clés associés, etc.)
      • C’est quand même dommage, même dans le cas des brèves d’être limité à un seul secteur (on devrait pouvoir avoir gérer secteurs ou rubriques et mot-clefs dans le titre —par préfixes ou suffixes entre crochets par exemple)
      • Ce truc est cool aussi pour répondre à un message de forum (perso, j’aime bien pouvoir répondre directement à une notification sans avoir à ouvrir une/un autre fenêtre/onglet et faire une phase d’authentification supplémentaire)
    • Tropicaloo

      Bonjour,
      Ne serait-il pas intéressant de mutualiser avec SpipService ou ce plugin en exploite-il déjà une partie ?
      Cdt

    Répondre à ce message

  • Bravo !! pour ce plugin !!

    Testé et OK !!

    Excellente idée très attendue !! J’attends la suite avec impatience !!

    Répondre à ce message

Ajouter un commentaire

Forum sur abonnement

Pour participer à ce forum, vous devez vous enregistrer au préalable. Merci d’indiquer ci-dessous l’identifiant personnel qui vous a été fourni. Si vous n’êtes pas enregistré, vous devez vous inscrire.

ConnexionS’inscriremot de passe oublié ?

Suivre les commentaires : RSS 2.0 | Atom