==== Postfix email relay with AWS SES on Linode Ubuntu 20.04 ==== (based off of [[https://docs.aws.amazon.com/ses/latest/DeveloperGuide/postfix.html|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 [[https://serverfault.com/questions/147921/forcing-the-from-address-when-postfix-relays-over-smtp|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: '' 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 Subject: Amazon SES Test This message was sent using Amazon SES. . or [[https://www.thomas-krenn.com/en/wiki/Test_TCP_Port_25_(smtp)_access_with_telnet|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'' ==== Optional ==== * get current hostname: ''hostname'' * set hostname with ''hostnamectl set-hostname ''