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

Le
Olivier
--001a114a78c23a57fe05582083f1
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

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 co=
urriel
>> associées à mon domaine.
>>
>> En d'autres termes, j'ai un domaine mondomaine.com <http://mondomaine.co=
m>
>> 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 certa=
ins de
>> ces comptes.
>>
>> Si besoin, mon ISP propose des options de configuration qui permettent
>> des redirections (chaque message envoyé à alerte@mondomaine.co=
m <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 me=
ssage
>> reçu sur la boîte alerte@mondomaine.com <mailto:alerte@mondoma=
ine.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@mondomain=
e.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'I=
P
>> 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/archiv=
er
>> 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éce=
ptionné,
> 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 : j=
e le
teste dès maintenant !
Merci beaucoup du tuyau !

--001a114a78c23a57fe05582083f1
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quo=
te">Le 1 septembre 2017 à 13:47, daniel huhardeaux <span dir="ltr">&=
lt;<a href="mailto:no-spam@tootai.net" target="_blank">no-spam@tootai.n=
et</a>&gt;</span> a écrit :<br><blockquote class="gmail_quote" style=
="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Le 01/09=
/2017 à 13:17, Olivier a écrit :<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
Bonjour,<br>
</blockquote>
<br>
Bonjour<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><span class="">
<br>
J&#39;ai un abonnement chez un ISP1 qui inclut entre autres, la fourniture =
d&#39;un service pour une vingtaine de boîtes personnalisées de c=
ourriel associées à mon domaine.<br>
<br></span>
En d&#39;autres termes, j&#39;ai un domaine <a href="http://mondomaine.co=
m" rel="noreferrer" target="_blank">mondomaine.com</a> &lt;<a href="h=
ttp://mondomaine.com" rel="noreferrer" target="_blank">http://mondomain=
e.com</a>&gt; et je peux créer des boîtes email comme <a href="=
mailto:contact@mondomaine.com" target="_blank">contact@mondomaine.com</a>=
&lt;mailto:<a href="mailto:contact@mondomaine.com" target="_blank">con=
tact@mondomaine.com</a><wbr>&gt;, <a href="mailto:compta@mondomaine.com" =
target="_blank">compta@mondomaine.com</a> &lt;mailto:<a href="mailto:co=
mpta@mondomaine.com" target="_blank">compta@mondomaine.com</a>&gt; ou <a =
href="mailto:alerte@mondomaine.com" target="_blank">alerte@mondomaine.c=
om</a> &lt;mailto:<a href="mailto:alerte@mondomaine.com" target="_blank=
">alerte@mondomaine.com</a>&gt;<wbr>.<span class=""><br>
J&#39;ai ici ou là quelques clients de messagerie qui interrogent cert=
ains de ces comptes.<br>
<br></span>
Si besoin, mon ISP propose des options de configuration qui permettent des =
redirections (chaque message envoyé à <a href="mailto:alerte@mo=
ndomaine.com" target="_blank">alerte@mondomaine.com</a> &lt;mailto:<a hre=
f="mailto:alerte@mondomaine.com" target="_blank">alerte@mondomaine.com<=
/a>&gt; est renvoyé immédiatement, semble-t-il, et si je le souha=
ite, à <a href="mailto:foobar@toto.com" target="_blank">foobar@tot=
o.com</a> &lt;mailto:<a href="mailto:foobar@toto.com" target="_blank">f=
oobar@toto.com</a>&gt;).<br>
<br>
J&#39;aimerai le plus simplement possible, lancer un script à chaque m=
essage reçu sur la boîte <a href="mailto:alerte@mondomaine.com"=
target="_blank">alerte@mondomaine.com</a> &lt;mailto:<a href="mailto:a=
lerte@mondomaine.com" target="_blank">alerte@mondomaine.com</a>&gt;<wbr>.=
<span class=""><br>
<br>
<br>
Pour ce faire, j&#39;ai déjà une machine sous Jessie connect=
e à Internet, avec une IP fixe, chez un prestataire ISP2.<br></span=
>
J&#39;y ai installé Postfix pour émettre des courriels au nom de =
<a href="mailto:alerte@mondomaine.com" target="_blank">alerte@mondomain=
e.com</a> &lt;mailto:<a href="mailto:alerte@mondomaine.com" target="_bl=
ank">alerte@mondomaine.com</a>&gt;<wbr>. Ça fonctionne (grâce aux=
conseils lus dans cette liste).<span class=""><br>
<br>
<br>
De quoi d&#39;autre ai-je besoin pour parvenir à mes fins ?<br>
Est-il exact de penser qu&#39;il est nécessaire et suffisant de faire:=
<br>
<br></span>
1. Redirection via l&#39;ISP1, des courriels reçus par <a href="mail=
to:alerte@mondomaine.com" target="_blank">alerte@mondomaine.com</a> &lt;m=
ailto:<a href="mailto:alerte@mondomaine.com" target="_blank">alerte@mon=
domaine.com</a>&gt; vers <a href="mailto:toto@monip.isp2.fr" target="_b=
lank">toto@monip.isp2.fr</a> &lt;mailto:<a href="mailto:toto@monip.isp2.f=
r" target="_blank">toto@monip.isp2.fr</a>&gt; où <a href="http://m=
onip.isp2.fr" rel="noreferrer" target="_blank">monip.isp2.fr</a> &lt;<a=
href="http://monip.isp2.fr" rel="noreferrer" target="_blank">http://=
monip.isp2.fr</a>&gt; est l&#39;IP fixe de ma machine hébergeant Postf=
ix<span class=""><br>
<br>
2. Configurer ma machine hébergeant Postfix pour déclencher un sc=
ript à chaque réception (comme ici [1])<br>
<br></span>
3. Configurer ma machine hébergeant Postfix pour vider réguli=
rement le compte <a href="mailto:alerte@mondomaine.com" target="_bla=
nk">alerte@mondomaine.com</a> &lt;mailto:<a href="mailto:alerte@mondomain=
e.com" target="_blank">alerte@mondomaine.com</a>&gt;<wbr>.<span class="=
"><br>
<br>
<br>
Questions connexes:<br>
4. Quel programme permet à un serveur Debian de purger/vider/archiver =
facilement un compte &quot;distant&quot; de messagerie ?<br>
</span></blockquote>
<br>
Tout est OK sauf pour le point 3/4: s&#39;il s&#39;agit d&#39;une redirecti=
on, tous les messages vers <a href="mailto:alerte@mondomaine.com" target=
="_blank">alerte@mondomaine.com</a> 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&#39;ailleurs dans ton lien le =
Mr explique bien qu&#39;il y a 2 solutions: ou l&#39;on s&#39;intéress=
e uniquement au mail déclencheur (le message n&#39;est pas important) =
donc une fois réceptionné, terminé ou on s&#39;intéress=
e au message dans ce cas il faut gerer le body dans le script (voir ses exe=
mples).<br>
<br>
Pour réceptionner des messages distants, fetchmail est parfait.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
<br>
<br>
Slts<br>
<br>
[1] <a href="https://arno0x0x.wordpress.com/2016/02/07/postfix-lancer-un-=
script-sur-reception-dun-e-mail/" rel="noreferrer" target="_blank">http=
s://arno0x0x.wordpress.com<wbr>/2016/02/07/postfix-lancer-un-<wbr>script-su=
r-reception-dun-e-mai<wbr>l/</a><span class="HOEnZb"><font color="#8888=
88"><br>
</font></span></blockquote><span class="HOEnZb"><font color="#888888">
-- <br>
Daniel<br>
<br>
</font></span></blockquote></div><br></div><div class="gmail_extra">En ef=
fet, fetchmail semble bien correspondre à ce que je recherche : je le =
teste dès maintenant !<br></div><div class="gmail_extra">Merci beauc=
oup du tuyau !<br></div></div>

--001a114a78c23a57fe05582083f1--
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JF Straeten
Le #26443426
Lo,
On Fri, Sep 01, 2017 at 05:23:48PM +0200, Olivier wrote:
[...]
Par contre, je recherche encore comment :
A- décomposer mon fichier /tmp/fetch_test ci dessus en plusieurs
emails

Pourquoi ne pas les faire tomber dans une Maildir ? Tu aurais de base
un fichier par mail pour le même prix :-)
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

procmail, en effet...
C- décomposer chaque email en un corps de message textuel et une pièce
jointe (chaque email aura une PJ).

Il y a quelques librairies Perl qui devraient te permettre de faire
cela, dans la Debian en plus.
La chaîne serait : fetchmail -> procmail -> Maildir -> programme Perl
(récupère) (garde/jette) (stocke) (décortique)
Hih,
--
JFS.
JF Straeten
Le #26443428
Re,
On Fri, Sep 01, 2017 at 05:47:02PM +0200, Olivier wrote:
[...]
Pourquoi ne pas les faire tomber dans une Maildir ? Tu aurais de base
un fichier par mail pour le même prix :-)

Je n'ai rien contre.
Comment fait-on ?
Avec dans le fichier .fetchmailrc, une ligne du style :
mda "procmail ....."

Oui, tout à fait :-)
[...]
Il y a quelques librairies Perl qui devraient te permettre de faire
cela, dans la Debian en plus.

Un programme comme munpack du paquet mpack ferait-il l'affaire ?

Connais pas... Je pensais à truc crafté sur mesure pour la
circonstance ;)
Un package Perl comme Mail::Box::Manager permet d'ouvrir une Maildir
et d'aller bidouiller dedans assez facilement...
Hih,
--
JFS.
Yves Rutschle
Le #26444422
On Fri, Sep 01, 2017 at 05:23:48PM +0200, Olivier wrote:
1. Réception

J'ai un peu raté le début, mais il me semble que la plupart
des MTAs supportent un fichier .forward que l'utilisateur
peut utiliser pour transférer son mail, y compris à un
script si ce fichier commence avec un pipe, par ex.:
% cat ~/.forward
| /home/yves/bin/processmail
(exemple imaginé, hein).
Le script est lancé pour chaque mail, et reçoit le mail sur
stdin, ce qui résoud un de tes problèmes de traitement.
2. Traitement des emails
C- décomposer chaque email en un corps de message textuel et une pièce
jointe (chaque email aura une PJ).

Je seconde également l'usage de bibliothèques (en Perl
MIME::Parser et MIME::Entity si je me souviens bien).
C'est potentiellement faisable avec munpack (je ne connais
pas), mais ça risque d'être galère; un attachement peut en
contenir d'autres (donc descendre récursivement dedans si
nécessaire) et autres joyeusetés.
Après, si c'est toi qui maîtrise l'émission, ça peut passer.
Bonne chance!
Y.
Publicité
Poster une réponse
Anonyme