Forum Linux.debian/ubuntu Exécuter un script à l'envoi d'un message

Posté par (page perso) .
2
7
août
2012

L'objectif initial était de combler le manque de Thunderbird de pouvoir écrire dans un annuaire LDAP, je crois que je touche au but, sauf pour un détail (là où le diable se cache…).

J'ai donc maintenant un beau script perl qui parse un mail, récupère les adresses des destinataires des champs To:, CC: et BCC:, les parse, et les injecte dans l'annuaire LDAP proprement si l'adresse mail n'existe pas déjà.

Ce script s'exécute sur le dossier imap.sent tous les jours via crontab.

C'est ce dernier point que je voudrais enlever, parce que c'est pas propre, et c'est même pas synchrone, bref, c'est pas PIM 2.0 quoi…

Et là j'ai eu beau chercher, je n'ai pas encore réussi à trouver comment exécuter un script lors de l'envoi d'un message. Je pourrais passer soit par procmail, soit par postfix, mais je n'ai trouvé de solution ni pour l'un, ni pour l'autre…

Je préférerais passer par un filtre procmail, genre

:0:
| monscript.pl

tout en ne touchant pas au mail lui-même, il se retrouve toujours dans le dossier sent sans s'être aperçu de rien, et uniquement sur les mails placés dans .sent.

Mais si une autre méthode existe, je suis preneur car diablement embêté de ne pas trouver un truc qui me paraissait tellement simple…

  • # Avec inotify ?

    Posté par . Évalué à 3. Dernière modification le 07/08/12 à 08:51.

    Ça me parait également étrange qu'il n'existe pas de solution proprette directement depuis le MTA ou procmail.

    Je n'ai pas vraiment le temps de chercher plus loin dans cette direction, mais la création du mail envoyé dans .sent peut être un indice.

    C'est peut être un peu gruik dans ce cas, mais tu peux utiliser inotify (inotifywait surtout) pour effectuer une tâche à la création d'un nouveau fichier dans .sent.

    Tu peux jeter un oeil ici pour commencer :
    http://kerlinux.org/2010/08/utilisation-de-inotifywait-dans-des-scripts-shell/

    *Sano*

    • [^] # Re: Avec inotify ?

      Posté par (page perso) . Évalué à 1.

      Merci, pour l'instant c'est la seule solution que je vois effectivement…

      Je vais faire un script avec inotify jusqu'à ce qu'un barbu me frappe violemment en me disant qu'il fallait utiliser "[insérez ici la (commande|fonction|option) que je connaissais pas]".

  • # Avec dbus ?

    Posté par (page perso) . Évalué à 2.

    Dans Thunderbird installé sur Ubuntu, il y a une extension propre à Unity pour intégrer les notifications de Thunderbird au launcher. Il y a la même pour Gnome Shell. Je suppose qu'afin de marcher proprement avec les deux et d'autres, ça repose sur les notifications dbus. Il y en a peut-être une pour dire qu'un message est envoyé ?

    C'est juste une piste, tu as peut-être déjà creusé dans cette direction.

    Commentaire sous licence LPRAB - http://sam.zoy.org/lprab/

    • [^] # Re: Avec dbus ?

      Posté par (page perso) . Évalué à 1.

      Merci mais non, ce n'est pas mon angle d'attaque vu que tout se passe sur le serveur debian. Je m'y connecte uniquement en ssh, pas de Xorg ou quoi qui boufferait des ressources. Uniquement de la ligne de commande old school.

  • # fetchmail

    Posté par (page perso) . Évalué à 1.

    Une autre solution est d'utiliser un outil comme fetchmail pour rapatrier les mails en local. Il faudra modifier la configuration de thunderbird, mais cela permet d'utiliser procmail comme tu le suggère.

  • # Avec Postfix

    Posté par . Évalué à 0.

    Désolé de déterrer le message, mais c'est possible avec Postfix (et avec Sendmail aussi).

    Si tu recherches "Postfix script" et "Postfix script master.cf" sur google, tout est expliqué.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.