#!/usr/bin/env bash set -euo pipefail # Required (from ExternalSecret) : "${RELAY_AUTH_USER:?Missing RELAY_AUTH_USER}" : "${RELAY_AUTH_PASS:?Missing RELAY_AUTH_PASS}" : "${RELAY_AUTH_DOMAIN:?Missing RELAY_AUTH_DOMAIN}" # Optional hostname override if [ -n "${POSTFIX_MYHOSTNAME:-}" ]; then echo "${POSTFIX_MYHOSTNAME}" > /etc/mailname postconf -e "myhostname=${POSTFIX_MYHOSTNAME}" fi # Create SASL user in sasldb2 echo "${RELAY_AUTH_PASS}" | saslpasswd2 -p -c -u "${RELAY_AUTH_DOMAIN}" "${RELAY_AUTH_USER}" # El realm SASL tiene que ser EL MISMO dominio con el que se acaba de crear la entrada # del sasldb (arriba). Se deriva de la misma variable a propósito: si se declara aparte # en main.cf, los dos valores pueden divergir sin que nadie lo note y la autenticación # falla con "454 4.7.0 Temporary authentication failure" (incidente 2026-07-29). postconf -e "smtpd_sasl_local_domain=${RELAY_AUTH_DOMAIN}" chown root:sasl /etc/sasldb2 2>/dev/null || true chmod 640 /etc/sasldb2 2>/dev/null || true # Postfix spool and state directories (required inside container) mkdir -p /var/spool/postfix /var/lib/postfix postfix set-permissions 2>/dev/null || true exec postfix start-fg