Postfix + Courier-IMAP + Procmail... FIXED

Postfix + Courier-IMAP + Procmail... FIXED - Logiciels - Linux et OS Alternatifs

Marsh Posté le 11-04-2004 à 15:01:15    

Bonjour à tous.
 
 
Je souhaite créer quelques virtual users (moins d'une dizaine) sur mon serveur de messagerie.
 
Courier-IMAP permet cela : j'ai créé une boîte aux lettres et je peux la consulter mais Postfix ne la reconnait pas : quand j'envoie un mail, mon  MUA me renvoie ce message :

An error occured while sending mail. The mail server responded: <adresse_e-mail>: User unknown in local recipient table. Please check the message recipients and try again.


 
Je peux désactiver la local_recipient_table dans /etc/postfix/main.cf, auquel cas plus d'erreurs lors de l'envoi... mais l'e-mail me revient en tant que bounce, ce qui ne fait que déplacé le problème  :fou:  
 
Je n'ai pas trouvé de docs sur la façon d'utiliser nativement Postfix + Procmail avec les virtual users de Courier-IMAP : toutes celles que j'ai trouvé expliquent comment faire avec MySQL ou LDAP, ce qui est assez lourd par rapport à mes modestes besoins  :-)
 
Vous auriez des pistes ?
 
 
Merci d'avance.


Message édité par Incarnation le 21-04-2004 à 13:47:55
Reply

Marsh Posté le 11-04-2004 à 15:01:15   

Reply

Marsh Posté le 11-04-2004 à 15:08:41    

lire le VIRTUAL_README ? :)
sinon mysql est sympa notamment au niveau de l'administration si tu te sers de postfixadmin ou tu regles tout par une interface web :)


Message édité par mikala le 11-04-2004 à 15:10:05
Reply

Marsh Posté le 11-04-2004 à 15:38:05    

>mikala
>lire le VIRTUAL_README ?
 
Ok, ça a l'air intéressant.
Je te tiens informé...

Reply

Marsh Posté le 11-04-2004 à 16:34:53    

Bon, j'ai pu créer un virtual domain avec l'host qui va bien : quand je lui envoie un e-mail, Postfix l'accepte bien gentiment :-)
Par contre, il n'est pas délivré dans la boîte aux lettres : il reste dans /var/spool/postfix/active/.
 
Faut-il créer à la main virtual_mailbox_base et les sous-dossiers correspondant aux virtual domains et hosts ?
Quels droits et propriétaire leur attribuer ?
 
Je demande car apparament, Procmail ne le fait pas.
Faut-il utiliser un autre MDA ?
Si oui, peux-tu m'indiquer lequel, avec une chtite URL ?  :-)

Reply

Marsh Posté le 11-04-2004 à 17:11:24    

il me semble que ce n'est clairement pas le rôle de procmail que de distribuer les mails virtuels , il n'a pas de support ad hoc .
pour ce faire soit tu utilises virtual de postfix soit avec les options de filtrage & co tu peux te tourner vers maildrop .


Message édité par mikala le 11-04-2004 à 17:12:54
Reply

Marsh Posté le 11-04-2004 à 18:21:45    

On progresse.
Le mail est traité mais se fait bouncé :

postfix/pipe [...] to=<adresse_virtuelle>, relay=maildrop, delay=0, status=bounced ( user unknow. Command output: Invalid user specified. )


 
Je ne comprend pas, cela devrait marcher :
adresse_virtuelle est bien référencée dans /etc/postfix/vmailbox :

user@example.com example.com/user/


Par ailleurs, il est fait mention dans ta doc de l'utilisateur vmail. Celui-ci existe sur mon système (avec l'ID 502).
Dans /etc/postfix/master.cf, j'ai bien :

maildrop  unix  -       n       n       -       -       pipe
      flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}


Et voici le contenu de /etc/postfix/main.cf qui nous intéresse :

virtual_mailbox_domains = example.com
virtual_mailbox_base = /var/mail/vhosts
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
virtual_minimum_uid = 100
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_alias_maps = hash:/etc/postfix/virtual
 
maildrop_destination_recipient_limit = 1
virtual_transport = maildrop


Message édité par Incarnation le 11-04-2004 à 18:22:27
Reply

Marsh Posté le 11-04-2004 à 19:04:29    

Quand je remplace user=vmail par user=root dans le fichier/etc/postfix/master.cf, je n'ai plus le message "Invalid user specified", mais le mail est quand même deferred.

Reply

Marsh Posté le 21-04-2004 à 13:46:35    

J'ai résolu le truc, voici donc un récapitulatif pour ceux qui seraient intéressés.
 
 
Je tourne sur une Mandrake v9.2 avec les outils suivants :
 - courier-imap-2.1.2-1mdk,
 - maildrop-1.6.1-1mdk,
 - postfix-2.0.13-3mdk.
 
J'ai suivi les instructions de ces deux liens :
http://www.porcupine.org/postfix-m [...] al_mailbox
http://www.porcupine.org/postfix-m [...] tml#direct
 
 
Voic le contenu des divers fichiers de conf :

# postconf -n
alias_database = hash:/etc/postfix/aliases
alias_maps = hash:/etc/postfix/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/lib/postfix
debug_peer_level = 2
delay_warning_time = 4
home_mailbox = Maildir/
inet_interfaces = $myhostname, localhost.$mydomain
mail_owner = postfix
mail_spool_directory = /var/spool/mail
mailbox_command = /usr/bin/procmail -m /etc/procmailrc
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, $mydomain
mydomain = homelan.net
myhostname = discovery.homelan.net
mynetworks = 127.0.0.0/8, 192.168.0.0/24
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.0.13/README_FILES
sample_directory = /usr/share/doc/postfix-2.0.13/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) (Mandrake Linux)
unknown_local_recipient_reject_code = 450
virtual_alias_maps = hash:/etc/postfix/virtual_alias
virtual_gid_maps = static:502
virtual_mailbox_base = /home/vmail/virtual_mailbox
virtual_mailbox_domains = hash:/etc/postfix/virtual_domains
virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox
virtual_minimum_uid = 502
virtual_transport = maildrop
virtual_uid_maps = static:502


# grep maildrop /etc/postfix/master.cf
maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail argv=/path_to_maildrop -d ${recipient}

Pour moi, c'est /usr/bin/maildrop
 

# cat /etc/postfix/virtual_alias
postmaster@my-example.net postmaster


 

# cat /etc/postfix/virtual_domains
my-example.net   sans_importance

Le sans_importance est ici présent pour des raisons de format de fichier.
 

# cat /etc/postfix/virtual_mailbox
john@my-example.net  my-example.net/john/


 

# grep vmail /etc/passwd
vmail:x:502:502:virtual mail account:/home/vmail:/bin/bash


 

# cat /etc/userdb
vmail   uid=502|gid=502|home=/home/vmail|shell=/bin/bash|systempw=?|gecos=virtual mail account
502=   vmail
 
john@my-example.net home=/home/vmail/virtual_mailbox/my-example.net/john|gid=502|uid=502|mail=/home/vmail/virtual_mailbox/my-example.net/john/Maildir|imappw=?

J'ai remplacé les password par "?".
Vous noterez que le couple uid/gid doit être identique à celui de l'utilisateur vmail.
 
Il faut ensuite faire :

postmap /etc/postfix/virtual_alias
postmap /etc/postfix/virtual_domains
postmap /etc/postfix/virtual_mailbox
 
makeuserdb
cp /etc/userdb /etc/maildrop/userdb # c'est ces deux points qui n'étaient pas mentionnés dans les docs
makeuserdb-maildrop   # et qui faisaient que maildrop ignorait que faire avec les messages
 
/etc/init.d/postfix reload  # dépend de votre distribution


Message édité par Incarnation le 21-04-2004 à 13:49:27
Reply

Marsh Posté le 11-11-2004 à 18:33:53    

wrong one :/


Message édité par gentoouser le 11-11-2004 à 18:34:58
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed