Dovecot crea cartella, Postfix si aspetta il file

Ho provato a configurare un combo Postfix / Dovecot con gli utenti virtuali utilizzando questa guida .

Il mio server esegue Postfix 2.6.6 e Dovecot 2.0.9 su CentOS 6.5.

Il problema è che quando si connette al server utilizzando Outlook 2013 (si connette bene su IMAP + SMTP) e mi invio una e-mail di prova che non riceve l'e-mail. Guardando il maillog vedo che ho l'errore

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) 

Il messaggio di errore era abbastanza chiaro e ho pensato, beh, questo potrebbe essere rimasto da un disastro Cyrus / Postfix installazione che avevo prima. Sono andato avanti e cancellato la cartella vmail, ho creato una sottocartella per il dominio e ho cambiato la properties; di tutto su vmail: vmail. Riavvierò il postfix e il wherecot e la directory della posta in arrivo appare nuovamente. Postfix continua a lamentarsi come prima. Poi ho provato a cancellare la cartella e quindi creare un file vuoto, ma questo solo l'ha reso un problema di colombaia piuttosto che un problema postfix, quindi ora wherecot dice che si aspettava un file piuttosto che una directory.

/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 = wherecot smtpd_sasl_path = /var/run/wherecot/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/wherecot/wherecot.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/wherecot/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 } 

ed infine alcune voci di esempio nei miei domini / alias / elenchi delle cassette postali

 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/wherecot/passwd 

One Solution collect form web for “Dovecot crea cartella, Postfix si aspetta il file”

La risposta è estremamente semplice. Il path in /etc/postfix/vmail_mailbox manca una barra di traino. Quando non c'è traccia di traccia, il postfix lo tratterà come file e support quindi la cassetta postale in formato Mailbox (e non Maildir).

Aggiungendo la barra di traino, il postfix analizza correttamente la directory in formato maildir e lo tratterà di conseguenza.

Esempio:

 user@domain.tld domain.tld/user/ user2@domain.tld domain.tld/user2/ 
Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.