#!/bin/sh
# Entrypoint del contenedor de mail.
# Genera /etc/msmtprc desde el template + variables de entorno, luego arranca php-fpm.
set -e

TMPL="/etc/msmtp/msmtprc.tmpl"
OUT="/etc/msmtprc"

# === Validación de credenciales (FATAL si faltan) ===
if [ -z "$SMTP_HOST" ] || [ -z "$SMTP_USER" ] || [ -z "$SMTP_PASS" ] \
   || [ "$SMTP_PASS" = "cambiar-esta-clave" ] || [ "$SMTP_PASS" = "changeme" ]; then
  echo "================================================" >&2
  echo "FATAL: faltan credenciales SMTP reales en .env." >&2
  echo "  SMTP_HOST=$SMTP_HOST" >&2
  echo "  SMTP_USER=$SMTP_USER" >&2
  echo "  SMTP_PASS=${SMTP_PASS:-(vacío)}" >&2
  echo "" >&2
  echo "El formulario de contacto NO puede enviar mails." >&2
  echo "Definí las credenciales de Hostinger en .env y re-levantá." >&2
  echo "================================================" >&2
  exit 1
fi

# Defaults: Hostinger usa 465 (SSL/TLS implícito) o 587 (STARTTLS)
SMTP_PORT="${SMTP_PORT:-465}"

# Ajustar tls_starttls según el puerto:
#   465 = SMTPS (SSL/TLS implícito)  → tls_starttls off
#   587 = submission (STARTTLS)      → tls_starttls on
if [ "$SMTP_PORT" = "465" ]; then
  TLS_STARTTLS="tls_starttls    off"
else
  TLS_STARTTLS="tls_starttls    on"
fi

# Reemplazar placeholders en el template
sed \
  -e "s|__SMTP_HOST__|${SMTP_HOST}|" \
  -e "s|__SMTP_PORT__|${SMTP_PORT}|" \
  -e "s|__SMTP_USER__|${SMTP_USER}|" \
  -e "s|__SMTP_PASS__|${SMTP_PASS}|" \
  -e "s|__TLS_STARTTLS__|${TLS_STARTTLS}|" \
  "$TMPL" > "$OUT"

chmod 600 "$OUT"
chown root:root "$OUT"

echo "✓ msmtp configurado → ${SMTP_HOST}:${SMTP_PORT} (STARTTLS=$([ "$SMTP_PORT" = "465" ] && echo off || echo on))"

# Arrancar php-fpm (el CMD del Dockerfile)
exec "$@"
