[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Lancer un script à la réception d'un email entrant



@Bernard:
Tu peux intervenir quand tu veux: la bataille n'est pas encore gagnée !


Voici où j'en suis:

1. Réception
J'arrive à récupérer des emails avec une commande fetchmail -v et un fichier .fetchmailrc du type:
poll imap.isp1.fr protocol imap:
   username "essai@foobar.com" password "monpassword"
   keep
   mda "tee /tmp/fetch_test"

Je ne sais pas encore si en finale, j'utiliserai fetchmail mais l'outil me semble d'ores et déjà très pratique pour mettre au point le script de traitement des emails
car la configuration ci-dessus me permet de sauver dans un fichier les derniers emails reçus (pour l'instant, tous les emails reçus sont conservés dans la boite email).

2. Traitement des emails
Par contre, je recherche encore comment :
A- décomposer mon fichier /tmp/fetch_test ci dessus en plusieurs emails
B- écarter les messages qui ne proviennent pas d'une adresse précise ou plus généralement en fonction des en-têtes du message
C- décomposer chaque email en un corps de message textuel et une pièce jointe (chaque email aura une PJ).

Pour l'instant (après avoir installé le paquet mpack), j'ai:
$ file fetch_test1
fetch_test1: SMTP mail, ASCII text
$ munpack /tmp/fetch_test
Did not find anything to unpack from /tmp/fetch_test

Sur le web, dans ce genre de traitement, je retrouve énormément de références à procmail ou au développement d'appli via des libraires dans tout type de langage de programmation (PHP, Python, ...).
Des conseils sur les points A, B et C me seront sans doute très précieux.



Le 1 septembre 2017 à 15:51, <bernard.schoenacker@free.fr> a écrit :



De: "Olivier" <oza.4h07@gmail.com>
À: "ML Debian User French" <debian-user-french@lists.debian.org>
Envoyé: Vendredi 1 Septembre 2017 15:12:26
Objet: Re: Lancer un script à la réception d'un email entrant




Le 1 septembre 2017 à 13:47, daniel huhardeaux <no-spam@tootai.net> a écrit :
Le 01/09/2017 à 13:17, Olivier a écrit :
Bonjour,

Bonjour


J'ai un abonnement chez un ISP1 qui inclut entre autres, la fourniture d'un service pour une vingtaine de boîtes personnalisées de courriel associées à mon domaine.

En d'autres termes, j'ai un domaine mondomaine.com <http://mondomaine.com> et je peux créer des boîtes email comme contact@mondomaine.com <mailto:contact@mondomaine.com>, compta@mondomaine.com <mailto:compta@mondomaine.com> ou alerte@mondomaine.com <mailto:alerte@mondomaine.com>.
J'ai ici ou là quelques clients de messagerie qui interrogent certains de ces comptes.

Si besoin, mon ISP propose des options de configuration qui permettent des redirections (chaque message envoyé à alerte@mondomaine.com <mailto:alerte@mondomaine.com> est renvoyé immédiatement, semble-t-il, et si je le souhaite, à foobar@toto.com <mailto:foobar@toto.com>).

J'aimerai le plus simplement possible, lancer un script à chaque message reçu sur la boîte alerte@mondomaine.com <mailto:alerte@mondomaine.com>.


Pour ce faire, j'ai déjà une machine sous Jessie connectée à Internet, avec une IP fixe, chez un prestataire ISP2.
J'y ai installé Postfix pour émettre des courriels au nom de alerte@mondomaine.com <mailto:alerte@mondomaine.com>. Ça fonctionne (grâce aux conseils lus dans cette liste).


De quoi d'autre ai-je besoin pour parvenir à mes fins ?
Est-il exact de penser qu'il est nécessaire et suffisant de faire:

1. Redirection via l'ISP1, des courriels reçus par alerte@mondomaine.com <mailto:alerte@mondomaine.com> vers toto@monip.isp2.fr <mailto:toto@monip.isp2.fr> où monip.isp2.fr <http://monip.isp2.fr> est l'IP fixe de ma machine hébergeant Postfix

2. Configurer ma machine hébergeant Postfix pour déclencher un script à chaque réception (comme ici [1])

3. Configurer ma machine hébergeant Postfix pour vider régulièrement le compte alerte@mondomaine.com <mailto:alerte@mondomaine.com>.


Questions connexes:
4. Quel programme permet à un serveur Debian de purger/vider/archiver facilement un compte "distant" de messagerie ?

Tout est OK sauf pour le point 3/4: s'il s'agit d'une redirection, tous les messages vers alerte@mondomaine.com seront réceptionnés par la machine ISP2, pas de copie chez ISP1. Comme un script traite les messages, ils ne seront sauvegardés nulle part. D'ailleurs dans ton lien le Mr explique bien qu'il y a 2 solutions: ou l'on s'intéresse uniquement au mail déclencheur (le message n'est pas important) donc une fois réceptionné, terminé ou on s'intéresse au message dans ce cas il faut gerer le body dans le script (voir ses exemples).

Pour réceptionner des messages distants, fetchmail est parfait.



Slts

[1] https://arno0x0x.wordpress.com/2016/02/07/postfix-lancer-un-script-sur-reception-dun-e-mail/
--
Daniel


En effet, fetchmail semble bien correspondre à ce que je recherche : je le teste dès maintenant !
Merci beaucoup du tuyau !

bonjour,

désolé d'intervenir un peut après la bataille, mais il serait sage de faire un tour avec biff :

biff - Outil de notification de courriels

howto postfix :

biff (défaut : yes)
Utiliser ou non le service local biff. Ce service envoie des notifications "nouveau message"
aux utilisateurs qui ont demandé cette fonctionnaité avec la commande UNIX "biff y".

Pour des raisons de compatibilité, cette fonctionnalité est activée par défaut. Sur des systèmes avec
 un grand nombre d'utilisateurs interactifs, le service biff peut pénaliser les performances.
Indiquez "biff = no" pour le désactiver.

slt
bernard



Reply to: