virtual_mailbox_maps = hash:/etc/postfix/vmailbox <= all mailboxes and locations virtual_alias_maps = hash:/etc/postfix/virtual <= only for forwarding, mailboxes not needed here, too
If you want to use a local mail client (POP3/IMAP), you need to use Dovecot additionally to handle this. Mailbox locations according to dovecot at vi /etc/dovecot/conf.d/10-mail.conf
mail_location = mbox:~/mail:INBOX=/var/mail/vhosts/inetone/%uAuthentication and ports at vi /etc/dovecot/conf.d/10-master.conf
service pop3-login [ ... } service auth { unix_listener auth-userdb {...} }Authentication Driver 10-auth.conf > vi /etc/dovecot/conf.d/auth-system.conf.ext
passdb { ... } userdb { ... }
After configure dovecot main.cf or master.cf do
service dovecot restart
After configure postfix
vi /etc/postfix/main.cf vi /etc/postfix/vmailbox vi /etc/postfix/virtual postmap /etc/postfix/vmailbox <= recreate db file postmap /etc/postfix/virtual <= recreate db file postfix reload <= reload config
Postfix and dovecot logging
vi /var/log/mail.log <= show log cp /dev/null /var/log/mail.log <= clean up logNote there are also mail.info, mail.warn and mail.err file, but mail.log contains all!
vi /etc/postfix/vmailbox <= add mail and mailbox location, will be at <virtual_mailbox_base> + location specified postmap /etc/postfix/vmailbox <= recreate db file postfix reload <= reload configPostfix does not need a local user or home folder for an email account, but dovecot needs them, if you use PAM:
useradd <username> <= create user passwd <username> <= set password mkdir /home/markus.ebel <= create home folder chown markus.ebel /home/markus.ebel <= change home folder owner chgrp markus.ebel /home/markus.ebel <= change home folder group
vi /etc/postfix/master.cfand enable
smtps inet n - y - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes # -o smtpd_reject_unlisted_recipient=no # -o smtpd_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions -o smtpd_recipient_restrictions= -o smtpd_relay_restrictions=permit_sasl_authenticated,reject # -o milter_macro_daemon_name=ORIGINATING -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject -o smtpd_sasl_type=dovecot -o smtpd_sasl_path=private/auth
warning: SASL: Connect to private/auth failed: No such file or directory fatal: no SASL authentication mechanismsSolution: vi /etc/dovecot/conf.d/10-master.conf and enable
# Postfix smtp-auth unix_listener /var/spool/postfix/private/auth { mode = 0666 }Notes:
Install with apt-get install postfix
Start reconfigure wizard with sudo dpkg-reconfigure postfix
Configuration
vi /etc/postfix/main.cfexample at vi /usr/share/postfix/main.cf.dist
Check and restart
postfix check sudo systemctl reload postfix service postfix reload service postfix restart <==
vi /etc/aliases
based on tecadmin.net
apt-get install dovecot-core dovecot-lmtpd dovecot-imapd dovecot-pop3d apt-get install dovecot-sieve dovecot-solr dovecot-antispam
vi /etc/dovecot/dovecot.conf /etc/dovecot/conf.d sudo systemctl enable dovecot.service sudo systemctl start dovecot.service sudo systemctl stop dovecot.service sudo systemctl status dovecot.service
You can use any system account
adduser usernameNote: to read those local emails in Linux check file /var/mail/<username>
or
Virtual Domain at /etc/postfix/virtual
1. You should have a virtual domain, exclude this at "mydestination", see Postfix
guide
vi /etc/postfix/main.cf virtual_alias_domains = example.com, example2.com, ... virtual_alias_maps = hash:/etc/postfix/virtual2. create a addresses file (/etc/postfix/virtual)
vi /etc/postfix/virtual postmaster@example.com postmaster info@example.com joe sales@example.com jane # Uncomment entry below to implement a catch-all address # @example.com jim ...virtual aliases for more domains... postmap /etc/postfix/virtual postmap /etc/postfix/vmailbox postfix reload postfix stop postfix start newaliases service postfix restart postsuper -d ALL <= delete all mails in queue vi /var/log/mail.log grep postfix /var/log/syslog
vi /etc/postfix/main.cf virtual_mailbox_domains = example.com virtual_mailbox_base = /var/mail/vhosts <= base folder fo all mailboxes virtual_mailbox_maps = hash:/etc/postfix/vmailbox <= subdirectories per mailbox virtual_minimum_uid = 100 <= for safety virtual_uid_maps = static:5000 <= system user for all emails virtual_gid_maps = static:5000 <= system group for all emails virtual_alias_maps = hash:/etc/postfix/virtual <= email addresses vi /etc/postfix/vmailbox <= assigned folders for each email info@example.com example.com/info sales@example.com example.com/sales/ # Comment out the entry below to implement a catch-all. # @example.com example.com/catchall /etc/postfix/virtual: postmaster@example.com postmaster
Postfix is a mail server and it is used to forward mails to username@your-domain.de to any external account.
(Hint: It does not matter, if your-domain.de is a redirection to any other server like euve1234.vserver.de)
The postfix setup is described here,
but I had to modify it a little:
1. Installation
> su > apt-get update > apt-get install postfix > postfix reload2. Check
> postfix check > nmap localhost -p 25 > telnet localhost 25 > postconf -d > tail /var/log/mail.log
> apt-get install nmap3. Configure Postfix
vi /etc/postfix/main.cf
myorigin=your-domain.de myhostname=your-domain.de relay_domains=your-domain.de
mydestination = your-domain.de, ... mynetworks = 5.45.105.135/8 ...
Disable
# myorigin = /etc/mailname
# anti-spam: smtp restrictions smtpd_recipient_restrictions = reject_invalid_hostname, reject_unknown_recipient_domain, reject_unauth_destination, reject_rbl_client sbl.spamhaus.org, permit smtpd_helo_restrictions = reject_invalid_helo_hostname, reject_non_fqdn_helo_hostname, reject_unknown_helo_hostname smtpd_client_restrictions = reject_rbl_client dnsbl.sorbs.net
inet_interfaces = all
> service postfix restart
4. Setup email users
# This means that anyuser@your-domain.de will be forwarded to mailuser@mailprovider.de anyuser: mailuser@mailprovider.deHint: You should setup at least following email addresses
> postconf -e "alias_maps=hash:/etc/aliases" > newaliases > postfix reload [or service postfix restart]