OVH Cloud OVH Cloud

[Sendmail] Script & spool

7 réponses
Avatar
Fab!
Bonjour,

Sur l'excellent site http://www.funix.org/ un script est proposé afin de
modifier le "sender" (par exemple) d'un message en attente dans le spool
(/var/spool/mqueues) de sendmail, parfait, mais voila, en ce qui me concerne
je lance sendmail comme ceci:


#sendmail -bd -q 01

ce qui a pour effet de ne pas mettre en attente les messages (en réalité je
ne sais pas si un message passe quand même dans le spool, en a t'il le
temps...?) mais de l'envoyer directement.

Question: en imaginant que le délai de latence soit de 10s avant l'envoi, ce
qui laisserai largement le temps au script de s'exécuté, comment faire pour
que le script s'exécute quand le spool est non-vide ?

J'imagine qu'il faudrait un script qui scrute le répertoire en question
régulièrement (avec un cron), un peu lourd comme solution, donc si quelqu'un
a une idée différente :)

Et puis il existe un autre problème, si sendmail vide le spool toutes les
10secondes, mais qu'un message est envoyé 1 seconde avant le vidage du
spool, cela ne laisserait pas le temps au script de faire son boulot :(

Je précise que les mails partent d'un Windows et passent par un autre PC
(linux), donc sendmail.

En espérant avoir été clair :)

Merci!

7 réponses

Avatar
Manu
Bonjour,

Sur l'excellent site http://www.funix.org/ un script est proposé afin de
modifier le "sender" (par exemple) d'un message en attente dans le spool
(/var/spool/mqueues) de sendmail, parfait, mais voila, en ce qui me
concerne

je lance sendmail comme ceci:


#sendmail -bd -q 01

ce qui a pour effet de ne pas mettre en attente les messages (en réalité
je

ne sais pas si un message passe quand même dans le spool, en a t'il le
temps...?) mais de l'envoyer directement.

Question: en imaginant que le délai de latence soit de 10s avant l'envoi,
ce

qui laisserai largement le temps au script de s'exécuté, comment faire
pour

que le script s'exécute quand le spool est non-vide ?

J'imagine qu'il faudrait un script qui scrute le répertoire en question
régulièrement (avec un cron), un peu lourd comme solution, donc si
quelqu'un

a une idée différente :)

Et puis il existe un autre problème, si sendmail vide le spool toutes les
10secondes, mais qu'un message est envoyé 1 seconde avant le vidage du
spool, cela ne laisserait pas le temps au script de faire son boulot :(

Je précise que les mails partent d'un Windows et passent par un autre PC
(linux), donc sendmail.



hum ca ne s'appelle pas de spam ce que tu tentes de faire ! :)
le plus simple etant de recompiler ton sendmail

En espérant avoir été clair :)

Merci!




Avatar
Fab!
"Manu" a écrit dans le message de
news:bhgbuh$3k1$


hum ca ne s'appelle pas de spam ce que tu tentes de faire ! :)
le plus simple etant de recompiler ton sendmail



Je n'ai pas dans l'idée de faire du SPAM, je cherche seulement à lancer un
script quand /var/spool/mqueue/ n'est pas vide et avant que sendmail purge
la file d'attente (automatiquement)

Sinon je peux faire un cron qui lance 1) le script 2) sendmail -q (vidage de
la file d'attente)... donc à la limite pour le spam j'ai la solution.

A+

Avatar
Fab!
"Zouplaz"



#sendmail -bd -q 01



Juste pour info, peux-tu préciser l'utilité de la manip ? Un exemple
d'utilisation...


Alors d'après mon expérience et la doc lue (en partie) l'option ''q''
signifie ''queue'', donc un ''-q 15m'' va vider la file d'attente toute les
15 minutes, un ''-q 01'' vide la file d'attente immédiatement, dans mon cas
j'utilise un PC avec Windows, Linux en serveur SMTP, quand j'envoi un émail
(donc depuis Windows) il n'y a aucun intérêt à le mettre dans une file
d'attente, surtout pendant 15 minutes.

Et si tu as aussi l'url du script, j'ai pas trouvé sur funix.


#!/bin/bash
cd /var/spool/mqueue
for nom_mail in $(ls qf*)
do
awk 'BEGIN { FS=":" }
$1!="H??Message-ID" && $1!= "H??Sender" { print $0 }
$1=="H??Sender" { sub("olivier","ohoarau",$2);print $1,":",$2 }
$1=="H??Message-ID" { sub("fnac.net","free.fr",$2); print
$1,":",$2 }
' $nom_mail > /tmp/mail.tmp
cp /tmp/mail.tmp $nom_mail
done

http://www.funix.org/fr/linux/main-linux.php3?ref=sendmail&page=menu

Ce que je cherche est l'option qui permettrait de lancer un traitement
(lancement réalisé par Sendmail, traitement via un script) avant le vidage
de la file d'attente.

A+


Avatar
Zouplaz
Fab! - :

"Zouplaz"



#sendmail -bd -q 01



Juste pour info, peux-tu préciser l'utilité de la manip ? Un exemple
d'utilisation...


Alors d'après mon expérience et la doc lue (en partie) l'option ''q''
signifie ''queue'', donc un ''-q 15m'' va vider la file d'attente
toute les 15 minutes, un ''-q 01'' vide la file d'attente
immédiatement, dans mon cas j'utilise un PC avec Windows, Linux en
serveur SMTP, quand j'envoi un émail (donc depuis Windows) il n'y a
aucun intérêt à le mettre dans une file d'attente, surtout pendant 15
minutes.



Excuse moi, ma question était mal formulée. Tu dis "Sur l'excellent site
http://www.funix.org/ un script est proposé afin de
modifier le "sender" (par exemple) d'un message en attente dans le spool
(/var/spool/mqueues) de sendmail"

C'est cette manip là qui me titille, à quoi est-ce que ça sert d'aller
bidouiller des messages en partance ?? Comme je tente d'approfondir mes
connaissances en ce domaine si tu peux m'expliquer, même succintement,
l'utilité de la manip...


http://www.funix.org/fr/linux/main-linux.php3?ref=sendmail&page=menu



Merci je vais aller voir



Avatar
Fab!
"Zouplaz" <

C'est cette manip là qui me titille, à quoi est-ce que ça sert d'aller
bidouiller des messages en partance ?? Comme je tente d'approfondir mes
connaissances en ce domaine si tu peux m'expliquer, même succintement,
l'utilité de la manip...



Parce que je n'ai pas une adresse email mais plusieurs, cas identique pour
l'auteur du site & du script (lire l'explication du problème sur son site),
seule différence, il utilise une connexion RTC (donc connecté par
intermitence), donc une purge manuelle (sendmail -q) de la file d'attente
paraît plus adaptée.

Avatar
Stéphane ACOUNIS
Le Fri, 15 Aug 2003 12:41:48 +0200, Fab! a écrit:


"Zouplaz"



#sendmail -bd -q 01



Juste pour info, peux-tu préciser l'utilité de la manip ? Un exemple
d'utilisation...


Alors d'après mon expérience et la doc lue (en partie) l'option ''q''
signifie ''queue'', donc un ''-q 15m'' va vider la file d'attente toute
les 15 minutes, un ''-q 01'' vide la file d'attente immédiatement, dans
mon cas j'utilise un PC avec Windows, Linux en serveur SMTP, quand
j'envoi un émail (donc depuis Windows) il n'y a aucun intérêt à le
mettre dans une file d'attente, surtout pendant 15 minutes.



Chez moi le courrier part immédiatement si il y a du répondant de l'autre
côté, auquel cas la tentative de réexpédition se fait toutes les 15
minutes (option -bq 15m).
Testé encore à l'instant.

--
Stéphane ACOUNIS
Q: "Are we not men?"
A: "We are DEVO"



Avatar
Fab!
"Stéphane ACOUNIS"


Chez moi le courrier part immédiatement si il y a du répondant de l'autre
côté, auquel cas la tentative de réexpédition se fait toutes les 15
minutes (option -bq 15m).
Testé encore à l'instant.


Et la machine sous linux est directement relié à Internet ou passe par un
autre PC (mon cas) ?