lwc:linux:postfix

(based off of these directions):

sudo apt install -y postfix
sudo cp /usr/share/postfix/main.cf.debian /etc/postfix/main.cf
sudo postconf -e "relayhost = [email-smtp.us-west-2.amazonaws.com]:2587" "smtp_sasl_auth_enable = yes" "smtp_sasl_security_options = noanonymous" "smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd" "smtp_use_tls = yes" "smtp_tls_security_level = encrypt" "smtp_tls_note_starttls_offer = yes"
sudo sh -c 'echo [email-smtp.us-west-2.amazonaws.com]:2587 AWSUSER:AWSPASS > /etc/postfix/sasl_passwd'
sudo postmap hash:/etc/postfix/sasl_passwd
sudo chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt'
sudo cp /etc/resolv.conf /var/spool/postfix/etc/resolv.conf # getting hostname unresolved without this. A bug in 14.04 that remains?
sudo sh -c 'echo inet_interfaces = loopback-only >> /etc/postfix/main.cf' # smtp accepted but only internally
sudo postfix stop; sudo postfix start; sudo postfix reload

Force the From address in Postfix

from these directions execute as root:

echo "sender_canonical_classes = envelope_sender, header_sender" >> /etc/postfix/main.cf
echo "sender_canonical_maps =  regexp:/etc/postfix/sender_canonical_maps" >> /etc/postfix/main.cf
echo "smtp_header_checks = regexp:/etc/postfix/header_check" >> /etc/postfix/main.cf
echo "/.+/    NEWSENDER@ADDR.COM" > /etc/postfix/sender_canonical_maps
echo "/From:.*/ REPLACE From: NEWSENDER@ADDR.COM" >/etc/postfix/header_check
sudo postfix stop; sudo postfix start; sudo postfix reload

Remap root@localhost to another to address

  • add root: <EMAILADDR> to /etc/aliases
  • sudo newaliases

test

Test with sendmail:

sendmail -f sender@example.com recipient@example.com # -f allows you to specify from and is not required
From: Sender Name <sender@example.com>
Subject: Amazon SES Test                
This message was sent using Amazon SES.                
.

or test with telnet

Tips

  • postfix should be set up with no configuration. When you do this, there are instructions given at the end to copy some sort of sample configuration.
  • to reconfigure: sudo dpkg-reconfigure postfix
  • to reload the settings: sudo postfix stop; sudo postfix start; sudo postfix reload
  • when testing tail -f /var/log/mail.log is your friend
  • view queued mail: postqueue -p
  • flush queued mail: postqueue -f
  • purge all queued mail: sudo postsuper -d ALL
  • get current hostname: hostname
  • set hostname with hostnamectl set-hostname <HOSTNAME>
  • lwc/linux/postfix.txt
  • Last modified: 2021/11/11 05:59
  • by John Harrison