Files
dms-knusperkerne/tools/add_mail_domain.sh
2025-11-20 22:32:15 +01:00

65 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
DOMAIN="$1"
if [[ -z "$DOMAIN" ]]; then
echo "Usage: $0 <domain>"
exit 1
fi
echo "=============================================="
echo " ADDING MAIL DOMAIN: $DOMAIN"
echo "=============================================="
echo ""
MAILSERVER_CONTAINER="mailserver"
#
# STEP 1: create dummy mailbox — required to register domain internally
#
echo "[1/3] Creating domain presence via dummy account ..."
docker exec "$MAILSERVER_CONTAINER" setup email add "dms-domain-init@$DOMAIN" "Init12345" >/dev/null 2>&1 || true
#
# STEP 2: generate DKIM key
#
echo "[2/3] Generating DKIM key ..."
docker exec "$MAILSERVER_CONTAINER" setup config dkim keysize 2048 domain "$DOMAIN"
#
# STEP 3: extract DKIM public key (to show user DNS record)
#
echo "[3/3] Extracting DKIM public key ..."
PUBKEY=$(docker exec "$MAILSERVER_CONTAINER" sh -c \
"cat /tmp/docker-mailserver/opendkim/keys/$DOMAIN/mail.txt" 2>/dev/null)
if [[ -z "$PUBKEY" ]]; then
echo "ERROR: Could not read DKIM key!"
exit 1
fi
echo ""
echo "=============================================="
echo " DNS RECORDS TO ADD FOR: $DOMAIN"
echo "=============================================="
echo ""
echo "1) MX record:"
echo " $DOMAIN. 50 mail.knusperkerne.de."
echo ""
echo "2) SPF record:"
echo " $DOMAIN. TXT \"v=spf1 mx a:mailsystem.knusperkerne.de ip4:89.58.2.51 -all\""
echo ""
echo "3) DKIM record (selector: mail):"
echo ""
echo "$PUBKEY"
echo ""
echo "4) DMARC record:"
echo " _dmarc.$DOMAIN. TXT \"v=DMARC1; p=quarantine; rua=mailto:postmaster@$DOMAIN\""
echo ""
echo "=============================================="
echo " Domain setup completed."
echo "=============================================="
echo ""