65 lines
1.7 KiB
Bash
Executable File
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 ""
|