Overview
If you're new to running your own web server or VPS, you may find the need to configure email addresses. Due to it's popularity and proven stability, Postfix was used for this example and was tested used Debian 6 Squeeze. The following tutorial will outline the steps required for creating new email address for virtualhosts hosted on your server that forward to an external email address such as Yahoo! Mail, Gmail, Hotmail, or any other address that you desire.
Step 1 - Configure /etc/postfix/virtual
Configure virtual, adding entries for any new email addresses, accounts that are associated with them, and where you would like to forward the email to.
$ sudo nano /etc/postfix/virtual
Sample: (/etc/postfix/virtual)
person1@example.com person person1 person1@realemail.com person2@example.com person person2 person2@realemail.com
Step 2 - Configure /etc/postfix/main.cf
Configure main.cf, adding entries for any new domains that you intended to use for e-mail.
$ sudo nano /etc/postfix/main.cf
Sample: (/etc/postfix/main.cf)
# See /usr/share/postfix/main.cf.dist for a commented, more complete version # Debian specific: Specifying a file name will cause the first # line of that file to be used as the name. The Debian default # is /etc/mailname. #myorigin = /etc/mailname smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) biff = no # appending .domain is the MUA's job. append_dot_mydomain = no # Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h readme_directory = no # TLS parameters smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key smtpd_use_tls=yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for # information on enabling SSL in the smtp client. myhostname = hostname.example.com alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases mydestination = localhost, localhost.localdomain, localhost, domain1.com, domain2.com relayhost = mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mailbox_command = procmail -a "$EXTENSION" mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all virtual_alias_domains = domain1.com, domain2.com virtual_alias_maps = hash:/etc/postfix/virtual
Step 3 - Update and Reload Postfix
Updating Postfix...
$ sudo postmap /etc/postfix/virtual $ sudo newaliases $ sudo /etc/init.d/postfix reload && sudo /etc/init.d/postfix restart
Step 4 - Testing and Debugging
To test the configuration, simply send an e-mail to the new address to confirm that it’s functional. If you do not receive an e-mail or get a error response from the server, you can check the mail log with the following command:
$ cat /var/log/mail.info