-
-
Save pbowyer/de5c1c2eb8acc3806d70bf5a32357da1 to your computer and use it in GitHub Desktop.
Script to configure Postfix for Mailgun
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Configuration for the script | |
POSTFIX_CONFIG=/etc/postfix/main.cf | |
POSTFIX_SASL=/etc/postfix/sasl_passwd | |
function confirm () { | |
read -r -p "${1:-Are you sure? [Y/n]} " response | |
if [[ $response == "" || $response == "y" || $response == "Y" ]]; then | |
echo 0; | |
else | |
echo 1; | |
fi | |
} | |
# Check that we're root, otherwise exit! | |
if [ "$(id -u)" != "0" ]; then | |
echo "This script must be run as root!" 1>&2 | |
exit 1 | |
fi | |
# Read some configuration input | |
read -r -p "Enter your Mailgun SMTP login: " SMTP_LOGIN | |
read -r -p "Enter your Mailgun SMTP password: " SMTP_PASSWORD | |
CONTINUE=`confirm "Continue with $SMTP_LOGIN:$SMTP_PASSWORD? [Y/n] "` | |
if [[ CONTINUE -ne 0 ]]; then | |
echo "Aborting..."; | |
exit; | |
fi | |
# Set a safe umask | |
umask 077 | |
# Install postfix and friends | |
apt-get update && apt-get install postfix libsasl2-modules -y | |
# Comment out a couple transport configurations | |
sed -i.bak "s/default_transport = error/# default_transport = error/g" $POSTFIX_CONFIG | |
sed -i.bak "s/relay_transport = error/# relay_transport = error/g" $POSTFIX_CONFIG | |
sed -i.bak "s/relayhost =/# relayhost =/g" $POSTFIX_CONFIG | |
# Add the relay host for Mailgun, force SSL/TLS, and other config | |
cat >> $POSTFIX_CONFIG << EOF | |
# Mailgun configuration | |
relayhost = [smtp.mailgun.org]:2525 | |
smtp_tls_security_level = encrypt | |
smtp_sasl_auth_enable = yes | |
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd | |
smtp_sasl_security_options = noanonymous | |
EOF | |
# Authentication stuff | |
cat > /etc/postfix/sasl_passwd << EOF | |
[smtp.mailgun.org]:2525 YOUR_SMTP_LOGIN:YOUR_SMTP_PASSWORD | |
EOF | |
# Generate a .db file and remove the old file | |
postmap $POSTFIX_SASL | |
rm $POSTFIX_SASL | |
# Set the permissions on the .db file | |
chmod 600 $POSTFIX_SASL.db | |
# Reload Postfix | |
/etc/init.d/postfix restart |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment