Postfix + Procmail : "can't create user output file" [urgent svp] - réseaux et sécurité - Linux et OS Alternatifs
Marsh Posté le 30-07-2004 à 13:14:56
il n'y a aucun utilisateur de procmail ici ?....
Marsh Posté le 30-07-2004 à 13:20:18
il n'y a pas d'interet à spéficier dans un premier temps le
-m $HOME/.procmailrc |
pour la raison simple que procmail les lis automatiquement si ils existent (cf man procmail )
tu peux en revanche préciser si ils sont en Maildir ou mbox dans ce fichier ( ou directement au niveau du /etc/procmailrc . )
après le $SENDMAIl existe ?
Marsh Posté le 30-07-2004 à 13:34:37
mikala a écrit : il n'y a pas d'interet à spéficier dans un premier temps le
pour la raison simple que procmail les lis automatiquement si ils existent (cf man procmail ) |
J'ai ajouté le -m $HOME/.procmailrc car Procmail ne faisait carrément rien du tout sans cette précision ! Je ne comprenais pas pourquoi d'ailleurs, j'avais beau mettre le .procmailrc dans le $HOME des users, procmail ne le trouvait pas (à priori) puisqu'il ne faisait rien.
quelle est la différence entre maildir et mbox ?? je peux savoir en quel mode ils sont, si je regarde le main.cf de postfix ?
Le $SENDMAIL doit être placé où, et doit avoir quelle valeur ??
Merci pour les précisions !!
Marsh Posté le 30-07-2004 à 13:53:02
c'est bizarre que procmail ne lise pas automatiquement ce fichier (le .procmailrc) ,il est lisible par l'user a qui appartient le répertoire ? car en fait procmail se setuider sous l'user pour lequel il doit déposer le mail donc si ce fichier appartien a root et est en 600 ca risque d'etre effectivement dur pour lui de le lire
$SENDMAIl <-- bah il doit contenir le chemin vers ton equivalent binaire sendmail (celui mis en place par postfix lors de son installation ) .
mbox/Maildir .
pour mbox --> man mbox
en gros c'est un fichier qui contient tous les mails de l'user . il est classiquement dans /var/spool/mail/user <-- user étant le nom du fichier et contient les mails de 'user'
Maildir --> man Maildir
en fait la structure est la totalement différente .
en fait c'est un repertoire ( Maildir ) contenant 3 autres repertoires , cur ,new et tmp .
chaque mail est stocké dans un fichier a part , il est 'plus' sur que le format mbox dans le sens ou quand un mail est dépose , il va dans le tmp/ une fois écris a ce niveau il est déplacé dans new/ , une fois lu il ira dans cur/ .
il est mieux que mbox car il y a notamment pas de lock contrairement a mbox , bref tu peux avoir plusieurs actions en simultanés sur la Maildir il n'y aura pas de blocage , alors que dans un mbox , il faut attendre son tour .
mbox est le format classique des mails sous *nix , et le comportement par défaut de postfix/procmail .
pour spécifier le format utilisé cela dépend du mda choisi :
si tu te sers de local de postfix alors il faut préciser au niveau du main.cf
par le biais de home_mailbox = Maildir/
si tu te sers d'un mda ( cas ou mailbox_command est spécifié ) comme procmail alors il faut le spécifier au niveau de la configuration de ce mda (donc ici procmail )
donc par exemple au niveau du /etc/procmailrc
Citation : DEFAULT="$HOME/Maildir/" |
comme tu l'auras deviné les Maildir sont dans le $HOME de l'utilisateur et pas dans le /var/spool/mail/ .
Marsh Posté le 03-08-2004 à 23:24:24
tiens j ai un pb similaire pour vacation : moi le user recoit son mail mais aucun reply n est envoyé
Marsh Posté le 30-07-2004 à 09:13:33
Salut,
J'ai mis en place un ptit serveur de mail sur une station SUN (Solaris 8), avec postfix.
Comme je souhaite mettre en place un message d'absence automatique pendant mes vacances, j'ai installé procmail, et j'ai rajouté dans le script main.cf de postfix :
mailbox_command = /usr/bin/procmail -m $HOME/.procmailrc
Dans le répertoire de chaque utilisateur, par exemple /toto pour l'utilisateur toto, j'ai placé un fichier .procmailrc avec le script suivant pour ceux qui sont en vacances :
EMAIL=toto@bidon.fr
SHELL=/bin/sh
:0 Whc: vacation.lock
# Perform a quick check to see if the mail was addressed to us
* $^(To|Cc):.*$EMAIL
# Don't reply to daemons and mailinglists
* !^FROM_DAEMON
# Mail loops are evil
* $!^X-Loop: $EMAIL
| formail -rD 8192 vacation.cache
:0 ehc # if the name was not in the cache
| (formail -rI"Precedence: junk" -A"From: $EMAIL" -A"X-Loop: $EMAIL" ; cat $HOME/.autoreply;) | $SENDMAIL -oi -t
(c'est un script que j'ai trouvé sur le web qui permet de renvoyer un mail automatique)
Le problème, c'est que lorsque j'envoie un mail à toto@bidon.fr pour faire un essai, toto ne reçoit pas son mail, et je reçois un mail de retour :
This is the Postfix program at host mail.bidon.fr.
I'm sorry to have to inform you that the message returned
below could not be delivered to one or more destinations.
For further assistance, please send mail to <postmaster>
If you do so, please include this problem report. You can
delete your own text from the message returned below.
The Postfix program
<toto@bidon.fr>: can't create user output file
Message/delivery-status
Reporting-MTA: dns; mail.bidon.fr
Arrival-Date: Fri, 30 Jul 2004 09:03:31 +0100 (WEST)
Final-Recipient: rfc822; toto@bidon.fr
Action: failed
Status: 5.0.0
Diagnostic-Code: X-Postfix; can't create user output file
J'ai alors tenté de créer un fichier .procmailrc sans le script de renvoi de mail :
EMAIL=toto@bidon.fr
SHELL=/bin/sh
Je reçois le mail retour de postfix !!
Que dois-je faire ?? Y'a-t'il des paramètres à configurer avec Procmail pour qu'il puisse écrire le fichier de l'utilisateur ??
Merci par avance !!