60 lines
2.0 KiB
Bash
60 lines
2.0 KiB
Bash
#!/bin/sh
|
|
set -e
|
|
|
|
# Generate main.cf from template with environment variables
|
|
envsubst < /etc/postfix/main.cf.template > /etc/postfix/main.cf
|
|
|
|
# Generate MySQL virtual alias config from template
|
|
envsubst < /etc/postfix/mysql_virtual_alias_maps.cf.template > /etc/postfix/mysql_virtual_alias_maps.cf
|
|
|
|
# Generate SASL password file from environment variables
|
|
envsubst < /etc/postfix/sasl_passwd.template > /etc/postfix/sasl_passwd
|
|
|
|
# Wait for MySQL to be ready
|
|
echo "Waiting for MySQL to be ready..."
|
|
for i in $(seq 1 30); do
|
|
if nc -z ${MYSQL_HOST} ${MYSQL_PORT} 2>/dev/null; then
|
|
echo "MySQL is ready!"
|
|
break
|
|
fi
|
|
echo "Waiting for MySQL... ($i/30)"
|
|
sleep 2
|
|
done
|
|
|
|
# Generate Postfix hash databases
|
|
postmap /etc/postfix/sasl_passwd
|
|
chmod 600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
|
|
|
|
# Regenerate sender_access database
|
|
postmap /etc/postfix/sender_access
|
|
chmod 644 /etc/postfix/sender_access /etc/postfix/sender_access.db
|
|
|
|
# Set permissions on MySQL config
|
|
chmod 644 /etc/postfix/mysql_virtual_alias_maps.cf
|
|
|
|
# Configure bounce processing based on environment variable
|
|
if [ "${ENABLE_EMAIL_BOUNCE_PROCESSING:-false}" = "true" ]; then
|
|
echo "Email-based bounce processing enabled"
|
|
# Regenerate aliases database to enable bounce processing
|
|
newaliases
|
|
chmod 644 /etc/aliases /etc/aliases.db
|
|
|
|
# Generate smtp generic maps to ensure bounces come to our bounce address
|
|
postmap /etc/postfix/smtp_generic
|
|
chmod 644 /etc/postfix/smtp_generic /etc/postfix/smtp_generic.db
|
|
echo "Configured return path rewriting to bounces@lists.sasalliance.org"
|
|
else
|
|
echo "Email-based bounce processing disabled"
|
|
# Create minimal aliases without bounce processing
|
|
echo "postmaster: root" > /etc/aliases
|
|
echo "root: postmaster" >> /etc/aliases
|
|
newaliases
|
|
|
|
# Disable smtp generic maps
|
|
echo "# Email bounce processing disabled" > /etc/postfix/smtp_generic
|
|
postmap /etc/postfix/smtp_generic
|
|
fi
|
|
|
|
# Start Postfix in foreground
|
|
exec postfix start-fg
|