Browse Source

Update adddomain.sh

Two Parameters: The script now accepts two arguments:

    $1: The new domain you are adding.
    $2: The existing mail service domain.

Variable Assignment:

- new_domain="$1" assigns the first parameter to the new domain being added.
- mail_service_domain="$2" assigns the second parameter to the existing mail service domain.
- maildomain="$subdom.$mail_service_domain" constructs the mail domain using the existing mail service domain.

Error Checking:

- The script now checks that both parameters are provided before proceeding, ensuring the script is called correctly.

DKIM, DMARC, SPF, and MX Records:

- The DNS records generated now correctly reflect the new domain and the existing mail service domain.
pull/329/head
xarraxyl 4 weeks ago
committed by GitHub
parent
commit
2b690810ac
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
1 changed files with 21 additions and 18 deletions
  1. +21
    -18
      adddomain.sh

+ 21
- 18
adddomain.sh View File

@@ -1,35 +1,38 @@
#!/bin/sh

domain="$1"
[ -z "$1" ] && exit
new_domain="$1"
mail_service_domain="$2"

# Check if both domains are provided
[ -z "$new_domain" ] || [ -z "$mail_service_domain" ] && { echo "Usage: $0 new_domain mail_service_domain"; exit 1; }

domain="$1"
subdom="mail"
maildomain="$subdom.$domain"
maildomain="$subdom.$mail_service_domain"

# Add the domain to the valid postfix addresses.
grep -q "^mydestination.*$domain" /etc/postfix/main.cf ||
sed -i "s/^mydestination.*/&, $domain/" /etc/postfix/main.cf
# Add the new domain to the valid postfix addresses.
if ! grep -q "^mydestination.*$new_domain" /etc/postfix/main.cf; then
sed -i "s/^mydestination.*/&, $new_domain/" /etc/postfix/main.cf
fi

# Create DKIM for new domain.
mkdir -p "/etc/postfix/dkim/$domain"
opendkim-genkey -D "/etc/postfix/dkim/$domain" -d "$domain" -s "$subdom"
# Create DKIM for the new domain.
mkdir -p "/etc/postfix/dkim/$new_domain"
opendkim-genkey -D "/etc/postfix/dkim/$new_domain" -d "$new_domain" -s "$subdom"
chgrp -R opendkim /etc/postfix/dkim/*
chmod -R g+r /etc/postfix/dkim/*

# Add entries to keytable and signing table.
echo "$subdom._domainkey.$domain $domain:$subdom:/etc/postfix/dkim/$domain/$subdom.private" >> /etc/postfix/dkim/keytable
echo "*@$domain $subdom._domainkey.$domain" >> /etc/postfix/dkim/signingtable
echo "$subdom._domainkey.$new_domain $new_domain:$subdom:/etc/postfix/dkim/$new_domain/$subdom.private" >> /etc/postfix/dkim/keytable
echo "*@$new_domain $subdom._domainkey.$new_domain" >> /etc/postfix/dkim/signingtable

systemctl reload opendkim postfix

# Print out DKIM TXT entry.
pval="$(tr -d '\n' <"/etc/postfix/dkim/$domain/$subdom.txt" | sed "s/k=rsa.* \"p=/k=rsa; p=/;s/\"\s*\"//;s/\"\s*).*//" | grep -o 'p=.*')"
pval="$(tr -d '\n' <"/etc/postfix/dkim/$new_domain/$subdom.txt" | sed "s/k=rsa.*p=/k=rsa; p=/;s/\"\s*\"//g;s/\"\s*.*//g" | grep -o 'p=.*')"

dkimentry="$subdom._domainkey.$domain TXT v=DKIM1; k=rsa; $pval"
dmarcentry="_dmarc.$domain TXT v=DMARC1; p=reject; rua=mailto:dmarc@$domain; fo=1"
spfentry="$domain TXT v=spf1 mx a:$maildomain -all"
mxentry="$domain MX 10 $maildomain 300"
dkimentry="$subdom._domainkey.$new_domain TXT v=DKIM1; k=rsa; $pval"
dmarcentry="_dmarc.$new_domain TXT v=DMARC1; p=reject; rua=mailto:dmarc@$new_domain; fo=1"
spfentry="$new_domain TXT v=spf1 mx a:$maildomain -all"
mxentry="$new_domain MX 10 $maildomain"

echo "$dkimentry
$dmarcentry
@@ -41,4 +44,4 @@ echo "$dkimentry
$dmarcentry
$spfentry
$mxentry"
echo "They have also been stored in ~/dns_emailwizard_added"
echo "They have also been stored in $HOME/dns_emailwizard_added"

Loading…
Cancel
Save