3

Postfix version 2.6.6, Dovecot Version 2.0.9

I want to setup Postfix + Dovecot. Dovecot seems to be working. I can authenticate. However, the mailbox is empty! Nothing will get delivered! I followed many tutorials on Postfix + Dovecot but they seem to want to complicate things by using Dovecot LDA or MySQL. I just want it to be very simple and having Postfix deliver to the virtual mail boxes are fine. I don't need MySQL either. I already set up a custom password file that Dovecot uses for authentication and I can login to POP3 with SSL.

I can see from the logs that Postfix is delivering to the system user accounts (the catch-all), instead of the virtual users that I set up in Dovecot. The SMTP + SSL authentication seems to work also.

I can also see from the logs that Dovecot is checking the correct virtual mail folder.

I just need to figure out how to get Postfix to deliver to the virtual mail boxes. I have the following which I believe are relevant. Let me know what other settings you need to see:

alias_maps = hash:/etc/aliases
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mydomain = xxx.com
myhostname = mail.xxx.com
mynetworks = 99.99.99.99, 99.99.99.99
myorigin = $mydomain
relay_domains = $mydestination, xxx.com, domain2.net, domain3.com
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtpd_recipient_restrictions = reject_non_fqdn_sender reject_non_fqdn_recipient reject_unknown_recipient_domain permit_sasl_authenticated check_relay_domains
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_sasl_type = dovecot
smtpd_sender_restrictions = check_sender_mx_access cidr:/etc/postfix/bogus_mx reject_invalid_hostname reject_unknown_sender_domain reject_non_fqdn_sender
virtual_mailbox_base = /var/spool/vmail
virtual_mailbox_domains = xxx.com, domain2.net, domain3.com
virtual_minimum_uid = 444

Postfix master.cf:

submission inet n       -       -       -       -       smtpd
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=private/auth
  -o smtpd_sasl_security_options=noanonymous
  -o smtpd_sasl_local_domain=$myhostname
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o smtpd_sender_login_maps=hash:/etc/postfix/virtual
  -o smtpd_sender_restrictions=reject_sender_login_mismatch
  -o smtpd_recipient_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject

Dovecot related:

mail_location = maildir:~/Maildir
passdb {
  args = /etc/dovecot/users.conf
  driver = passwd-file
}
service auth {
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
  }
}

The virtual mail user:

vmail:x:444:99:virtual mail users:/var/spool/vmail:/sbin/nologin

Here is the /var/log/maillog when I try to send something to myself:

Oct 25 22:10:05 308321 postfix/smtpd[2200]: connect from user-999.cable.mindspring.com[99.99.99.99]
Oct 25 22:10:05 308321 postfix/smtpd[2200]: D224BD4753: client=user-999.cable.mindspring.com[99.99.99.99], sasl_method=LOGIN, sasl_username=info@xxx.com
Oct 25 22:10:06 308321 postfix/cleanup[2207]: D224BD4753: message-id=<7DC3C163CFFC483AB6226F8D3D9969D2@dumbopc>
Oct 25 22:10:06 308321 postfix/qmgr[2168]: D224BD4753: from=<info@xxx.com>, size=1385, nrcpt=1 (queue active)
Oct 25 22:10:06 308321 postfix/smtpd[2200]: disconnect from user-999.cable.mindspring.com[99.99.99.99]
Oct 25 22:10:06 308321 postfix/local[2208]: D224BD4753: to=<systemuser@xxx.com>, orig_to=<info@xxx.com>, relay=local, delay=1.1, delays=0.53/0.02/0/0.51, dsn=2.0.0, status=sent (delivered to mailbox)
Oct 25 22:10:06 308321 postfix/qmgr[2168]: D224BD4753: removed
Chloe
  • 1,164
  • 4
  • 19
  • 35

1 Answers1

3

It seems as if you've only defined the virtual domains to accept mail for. You also need to define the accounts.

Do that with the directive virtual_mailbox_maps in main.cf

Read more about it here: http://www.postfix.org/postconf.5.html#virtual_mailbox_maps

miono
  • 546
  • 2
  • 6
  • Ok I added `virtual_mailbox_maps = hash:/etc/postfix/vmailbox` and the file `/etc/postfix/vmailbox` with `info@domain\t\tdomain.com/info/`, and ran `postmap /etc/postfix/vmailbox` and `postfix reload` but it still gives this in the logs: `Oct 26 03:32:08 308321 postfix/local[5303]: 72629D4753: to=, orig_to=, relay=local, delay=0.68, delays=0.49/0.01/0/0.17, dsn=2.0.0, status=sent (delivered to mailbox)`. It's still going to the system user mailbox, and not the virtual Maildir: `ls -lR /var/spool/vmail/...` – Chloe Oct 26 '12 at 03:49
  • Had to add domain to `virtual_mailbox_domains`, and look at all the warnings in the logs about `warning do not list domain in BOTH blah_blah and foo_bar`. Had to clean it up and remove from here & there. Also had to change destination folder to `domain.com/info/Maildir/` in vmailbox and re-run postmap because that is where Dovecot expects it. – Chloe Oct 26 '12 at 05:21
  • Hi Chloe, I've got a similar problem. I've just renamed my server from `vps.mydomain.com.au` to strait `mydomain.com.au` and now my emails to `jesse@mydomain.com.au` are being delivered to my local user `jesse` and not to the `/var/spool/vmail/` any more. Can you remember how you made that happen? Cheers – Jesse the Wind Wanderer Jul 17 '18 at 14:24
  • Ah actually I found my answer just after I posted that comment; [here](https://serverfault.com/questions/620045/postfix-how-to-setup-local-domain-users-as-virtual-users) I had mydomain.com.au listed in `mydestination` in `/etc/postfix/mail.cf` Removing it solved the problem. – Jesse the Wind Wanderer Jul 17 '18 at 15:37