25.2 Email Server using Postfix SMTP

20201201 Postfix is a standard SMTP server that is easy to setup for sending email from your server. It can also be set up to use another authenticated server, referred to as a smarthost, to send your email, as covered in Section @ref(email:smtp_postfix_smarthost). Many cloud providers will block a virtual server on their cloud from sending email directly to avoid spammers using these services.

$ wajig install postfix
  Internet Site
  System mail name: crisp.net.au

The typical settings for a local host to send email using SMTP, as stored in /etc/postfix/main.cf is created. Further settings can be configure using the reconfigure command:

$ wajig reconfigure postfix
  [...]
  Root and postmaster mail recipient: support@crisp.net.au
  Accept mail: .... crisp.net.au
  Synchronous updates: No
  Local networks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
  Mailbox size limit: 0
  Local address extension character: +
  Internet protocols to use: all

The configuration as in /etc/postfix/main.cf might look like:

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
append_dot_mydomain = no
readme_directory = no
compatibility_level = 2
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_security_level=may
smtp_tls_CApath=/etc/ssl/certs
smtp_tls_security_level=may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = crisp
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = crisp, 132.5.6.12, crisp, localhost.localdomain, localhost, crisp.net.au
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all

To check the server is active:

$ sudo netstat -tulpn | grep :25
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      21658/master        
tcp6       0      0 :::25                   :::*                    LISTEN      21658/master        

$ echo "This is a test email." \
  | mail -s "Subject" -a "From: webmaster@crisp.net.au" fred@togaware.com
$ sudo tail -f /var/log/mail.log
$ sudo journalctl -u postfix

Resources include:



Your donation will support ongoing development and give you access to the PDF version of this book. Desktop Survival Guides include Data Science, GNU/Linux, and MLHub. Books available on Amazon include Data Mining with Rattle and Essentials of Data Science. Popular open source software includes rattle, wajig, and mlhub. Hosted by Togaware, a pioneer of free and open source software since 1984. Copyright © 1995-2021 Graham.Williams@togaware.com Creative Commons Attribution-ShareAlike 4.0.