45 lines
1.1 KiB
Bash
Executable File
45 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# SETUP DKIM FOR DOMAIN
|
|
# Usage: ./setup-dkim.sh <DOMAIN> <SELECTOR>
|
|
|
|
DOMAIN=$1
|
|
SELECTOR=${2:-"mail"}
|
|
|
|
if [ -z "$DOMAIN" ]; then
|
|
echo "Usage: $0 <DOMAIN> [SELECTOR]"
|
|
exit 1
|
|
fi
|
|
|
|
echo "🔐 Setting up DKIM for $DOMAIN with selector $SELECTOR"
|
|
|
|
# Generate DKIM key pair
|
|
mkdir -p /etc/pmta/dkim
|
|
openssl genrsa -out /etc/pmta/dkim/${DOMAIN}.key 2048 2>/dev/null
|
|
openssl rsa -in /etc/pmta/dkim/${DOMAIN}.key -pubout -out /etc/pmta/dkim/${DOMAIN}.pub 2>/dev/null
|
|
|
|
# Extract public key for DNS
|
|
PUBKEY=$(grep -v "PUBLIC KEY" /etc/pmta/dkim/${DOMAIN}.pub | tr -d '\n')
|
|
|
|
echo ""
|
|
echo "📋 ADD THIS DNS TXT RECORD:"
|
|
echo "=============================================="
|
|
echo "Name: ${SELECTOR}._domainkey.${DOMAIN}"
|
|
echo "Type: TXT"
|
|
echo "Value: v=DKIM1; k=rsa; p=${PUBKEY}"
|
|
echo "=============================================="
|
|
echo ""
|
|
|
|
# Add to PMTA config
|
|
cat >> /etc/pmta/config << DKIMCONF
|
|
|
|
# DKIM for $DOMAIN
|
|
<domain $DOMAIN>
|
|
dkim-sign yes
|
|
dkim-selector $SELECTOR
|
|
dkim-key /etc/pmta/dkim/${DOMAIN}.key
|
|
</domain>
|
|
DKIMCONF
|
|
|
|
echo "✅ DKIM setup complete for $DOMAIN"
|
|
echo "⚠️ Don't forget to add the DNS record and restart PMTA!"
|