Skip to content

Instantly share code, notes, and snippets.

Created October 25, 2012 12:24
Show Gist options
  • Save sshtmc/3952294 to your computer and use it in GitHub Desktop.
Save sshtmc/3952294 to your computer and use it in GitHub Desktop.
Ubuntu sendmail using
function install_postfix() {
echo | sudo debconf-set-selections <<__EOF
postfix postfix/root_address string
postfix postfix/rfc1035_violation boolean false
postfix postfix/mydomain_warning boolean
postfix postfix/mynetworks string [::ffff:]/104 [::1]/128
postfix postfix/mailname string $HOST
postfix postfix/tlsmgr_upgrade_warning boolean
postfix postfix/recipient_delim string +
postfix postfix/main_mailer_type select Internet with smarthost
postfix postfix/destinations string $HOST, localhost.localdomain, localhost
postfix postfix/retry_upgrade_warning boolean
# Install postfix despite an unsupported kernel?
postfix postfix/kernel_version_warning boolean
postfix postfix/not_configured error
postfix postfix/sqlite_warning boolean
postfix postfix/mailbox_limit string 0
postfix postfix/relayhost string []:587
postfix postfix/procmail boolean false
postfix postfix/bad_recipient_delimiter error
postfix postfix/protocols select all
postfix postfix/chattr boolean false
echo "Postfix should be configured as Internet site with smarthost"
sudo apt-get install -q -y postfix
if ! dpkg -s postfix >/dev/null;
echo "Postfix is already installed."
echo "You may consider removing it before running the script."
echo "You may do so with the following command:"
echo "sudo apt-get purge postfix"
if zenity --version >/dev/null; then
GMAIL_USER=$(zenity --entry --title="Gmail username" --text="Enter your gmail username:")
GMAIL_PASS=$(zenity --entry --title="Gmail password" --text="Enter your gmail password:" --hide-text)
read -p "Gmail username: " GMAIL_USER
read -sp "Gmail password: " GMAIL_PASS
echo # an empty line
if [ -z "$GMAIL_USER" ]; then echo "No gmail username given. Exiting."; exit -1; fi
if [ -z "$GMAIL_PASS" ]; then echo "No gmail password given. Exiting."; exit -1; fi
if ! [ -f /etc/postfix/ ]; then
sudo cp /etc/postfix/ /etc/postfix/
sudo tee /etc/postfix/ >/dev/null <<__EOF
relayhost = []:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_loglevel = 1
smtp_tls_per_site = hash:/etc/postfix/tls_per_site
smtp_tls_CAfile = /etc/ssl/certs/Equifax_Secure_CA.pem
smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_tls_session_cache
echo "[]:587 $GMAIL_USER:$GMAIL_PASS" | sudo tee /etc/postfix/sasl_passwd >/dev/null
sudo chmod 400 /etc/postfix/sasl_passwd
sudo postmap /etc/postfix/sasl_passwd
echo " MUST" | sudo tee /etc/postfix/tls_per_site >/dev/null
sudo chmod 400 /etc/postfix/tls_per_site
sudo postmap /etc/postfix/tls_per_site
sudo service postfix restart
echo "Configuration done"
mail -s "Email relaying configured at ${HOST}" $ <<__EOF
The postfix service has been configured at host '${HOST}'.
Thank you for using this postfix configuration script.
echo "I have sent you a mail to $"
echo "This will confirm that the configuration is good."
echo "Please check your inbox at gmail."
Copy link

wvermin commented Oct 30, 2017

since end oct. 2017 the thing didn't work anymore. In the syslog complaints:
untrusted issuer /OU=GlobalSign Root CA - R2/O=GlobalSign/CN=GlobalSign
After editing the script: change Equifax_Secure_CA.pem into GlobalSign_Root_CA_-_R2.pem and
re-executing the script it is working again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment