Swisslinux.org

− Le carrefour GNU/Linux en Suisse −

 

Langue

 

Le Forum

Vous n'êtes pas identifié.

#1 15 Apr 2005 20:23:42

Minuteman
Prêcheu(r|se) du libre
 
Date d'inscription: 05 Nov 2004
Messages: 193

[Procmail] Répondeur (Résolu)

Hello, avant que je finisse par tuer quelqu'un je demande de l'aide sur un script pour procmail...Je désire faire un répondeur automatique pour e-mail.

Un man procmailex me donne ça:

A  simple  autoreply  recipe.  It makes sure that neither mail from any
       daemon (like bouncing mail or mail from mailing-lists), nor autoreplies
       coming  from yourself will be autoreplied to.  If this precaution would
       not be taken, disaster could result (âringingâ  mail).   In  order  for
       this recipe to autoreply to all the incoming mail, you should of course
       insert it before all other recipes in  your  rcfile.   However,  it  is
       advisable  to put it after any recipes that process the mails from sub-
       scribed mailinglists; it generally is  not  a  good  idea  to  generate
       autoreplies  to  mailinglists  (yes,  the  !^FROM_DAEMON  regexp should
       already catch those, but if the  mailinglist  doesnât  follow  accepted
       conventions, this might not be enough).

              :0 h c
              * !^FROM_DAEMON
              * !^X-Loop: your@own.mail.address
              | (formail -r -I"Precedence: junk"
                  -A"X-Loop: your@own.mail.address" ;
                 echo "Mail received.") | $SENDMAIL -t

Sauf que ce code plante lamentablement...enfin, ça fait rien.
Je l'ai rendu un peu plus minimal avec:


              :0 h c
              * !^FROM_DAEMON
              * !^X-Loop: your@own.mail.address
              | (formail -r) | /usr/sbin/sendmail.postfix -t

Donc dans l'ordre je contrôle juste que le mail ne vienne pas d'un daemon  et qu'il n'est pas parti en boucle infinie, ensuite je crée un mail de réponse avec formail -r que je balance au démon sendmail de mon postfix....

A mon avis c'est ça qui foire...l'exemple doit être pour sendmail et pas postfix, mais la toute aide est la bienvenue smile

Hors ligne

 

#2 16 Apr 2005 21:26:50

WaVeR
Gourou(e) du libre
Lieu: Biel-Bienne
Date d'inscription: 08 Oct 2004
Messages: 531
Site web

Re: [Procmail] Répondeur (Résolu)

Code:

:0
 *!^FROM_DAEMON
 *!^X-Loop: your@own.mail.address
  { 
  :0 h c
  | (formail -rk -I "ton-mail" -A "mail-destination" ; 
  cat $HOME/.reponse 
  )|$SENDMAIL -oi -t
  }

Et là, il faut juste avoir le fichier .reponse


There's no place like 127.0.0.1

Hors ligne

 

#3 17 Apr 2005 08:43:03

Minuteman
Prêcheu(r|se) du libre
 
Date d'inscription: 05 Nov 2004
Messages: 193

Re: [Procmail] Répondeur (Résolu)

Merci, je vais tester ça wink

Hors ligne

 

#4 19 Apr 2005 19:57:44

Minuteman
Prêcheu(r|se) du libre
 
Date d'inscription: 05 Nov 2004
Messages: 193

Re: [Procmail] Répondeur (Résolu)

Bon, en fait ça marchait depuis le début en injectant manuellement un mail à procmail...le problème c'est qu'en utilisation réelle (= postfix qui délivre les messages) cela ne marche plus.

Un peu plus de détails sur la manière dont j'utilise procmail...

1) Je l'appelle à partir du fichier .forward qui contient:

"|/usr/bin/procmail -m /chemin_vers_user/.procmailrc VERBOSE=ON"

2) Dans le fichier .procmailrc j'ai:

Code:

:0hc
* !^FROM_DAEMON
* !^X-Loop: test@test.ch
| (formail -r -A"X-Loop: test@test.ch"; cat .autoreply) | $SENDMAIL -t

Je rapelle que ceci marche très bien en injectant manuellement un mail.
En utilisation réelle avec postfix j'ai cependant droit à ça dans mes logs:


postfix/local[20478]: F3B6F174008: to=<test@test.ch>, relay=local, delay=1, status=bounced (can't create user output file)

Une idée? D'après ce que je sais procmail se lance avec l'UID du récepteur du mail et par conséquent il n'a peut-être pas le droit d'écrire dans /var/spool/mail pour envoyer la réponse...d'autres idées?

Hors ligne

 

#5 20 Apr 2005 17:36:54

Minuteman
Prêcheu(r|se) du libre
 
Date d'inscription: 05 Nov 2004
Messages: 193

Re: [Procmail] Répondeur (Résolu)

Alors j'ai trouvé la solution...c'est TRES con. En fait comme je l'ai dit, procmail est appelé par postfix et se lance avec l'UID du destinataire et moi j'essayais de créer un répondeur avec mon compte root. Sauf que le gentil postfix refuse pour des raisons de sécurité de le lancer avec l'UID 0 (root)...d'ou l'erreur.


PUTAIN DE MERDE, j'ai passé 6h à chercher pour trouver ça.
J'espère sincèrement que ça servira à quelqu'un un jour ce post...

Hors ligne

 

Pied de page des forums

Powered by FluxBB