version 1
This commit is contained in:
64
tools/add_mail_domain.sh
Executable file
64
tools/add_mail_domain.sh
Executable file
@@ -0,0 +1,64 @@
|
||||
#!/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 ""
|
||||
Reference in New Issue
Block a user