J'ai essayé de configurer une combinaison Postfix/Dovecot avec des utilisateurs virtuels à l'aide de ce guide .
Mon serveur exécute Postfix 2.6.6 et Dovecot 2.0.9 sur CentOS 6.5.
Le problème est que lorsque je me connecte au serveur en utilisant Outlook 2013 (il se connecte très bien en IMAP+SMTP) et que je m'envoie un e-mail de test, je ne le reçois pas. En regardant le maillog, je vois que j'obtiens l'erreur suivante
postfix/virtual[2768]: 9C3D480768: to=<user@domain.net>, relay=virtual, delay=1132, delays=1132/0.02/0/0.02, dsn=4.2.0, status=deferred (delivery failed to mailbox /var/vmail/domain.net/user: cannot open file: Is a directory)
Le message d'erreur était assez clair et je me suis dit que cela pouvait être les restes d'une installation défectueuse de Cyrus/Postfix que j'avais faite auparavant. J'ai pris les devants et supprimé le dossier vmail, créé un sous-dossier pour le domaine et changé la propriété de tout en vmail:vmail. Je redémarre postfix et Dovecot et le répertoire inbox apparaît à nouveau. Postfix continue à se plaindre comme avant. Ensuite, j'ai essayé de supprimer le dossier et de créer un fichier vide, mais cela n'a fait qu'en faire un problème de Dovecot plutôt qu'un problème de postfix, donc maintenant Dovecot dit qu'il s'attendait à un fichier plutôt qu'à un répertoire.
/etc/postfix/main.cf
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
unknown_local_recipient_reject_code = 550
alias_maps = hash:/etc/postfix/aliases
alias_database = $alias_maps
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.6.6/samples
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
relay_domains = *
virtual_alias_maps=hash:/etc/postfix/vmail_aliases
virtual_mailbox_domains=hash:/etc/postfix/vmail_domains
virtual_mailbox_maps=hash:/etc/postfix/vmail_mailbox
virtual_mailbox_base = /var/vmail
virtual_minimum_uid = 2222
virtual_transport = virtual
virtual_uid_maps = static:2222
virtual_gid_maps = static:2222
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = /var/run/dovecot/auth-client
smtpd_sasl_security_options = noanonymous
smtpd_sasl_tls_security_options = $smtpd_sasl_security_options
smtpd_sasl_local_domain = $mydomain
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
/etc/Dovecot/Dovecot.conf
listen = *
ssl = no
protocols = imap lmtp
disable_plaintext_auth = no
auth_mechanisms = plain login
mail_access_groups = vmail
default_login_user = vmail
first_valid_uid = 2222
first_valid_gid = 2222
mail_location = maildir:/var/vmail/%d/%n
passdb {
driver = passwd-file
args = scheme=SHA1 /etc/dovecot/passwd
}
userdb {
driver = static
args = uid=2222 gid=2222 home=/var/vmail/%d/%n allow_all_users=yes
}
service auth {
unix_listener auth-client {
group = postfix
mode = 0660
user = postfix
}
user = root
}
service imap-login {
process_min_avail = 1
user = vmail
}
et enfin quelques exemples d'entrées dans mes listes de domaines/aliases/boîtes aux lettres.
domain.tld OK # /etc/postfix/vmail_domains
user@domain.tld domain.tld/user # /etc/postfix/vmail_mailbox
user@domain.tld user@domain.tld # /etc/postfix/vmail_aliases
user@domain.tld:oOeIaLM/TyEPOdflb+GlL7d1MhE= # /etc/dovecot/passwd