You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
1.4 KiB

  1. #!/bin/sh
  2. domain="$1"
  3. [ -z "$1" ] && exit
  4. domain="$1"
  5. subdom="mail"
  6. # Add the domain to the valid postfix addresses.
  7. grep -q "^mydestination.*$domain" /etc/postfix/main.cf ||
  8. sed -i "s/^mydestination.*/&, $domain/" /etc/postfix/main.cf
  9. # Create DKIM for new domain.
  10. mkdir -p "/etc/postfix/dkim/$domain"
  11. opendkim-genkey -D "/etc/postfix/dkim/$domain" -d "$domain" -s "$subdom"
  12. chgrp -R opendkim /etc/postfix/dkim/*
  13. chmod -R g+r /etc/postfix/dkim/*
  14. # Add entries to keytable and signing table.
  15. echo "$subdom._domainkey.$domain $domain:$subdom:/etc/postfix/dkim/$domain/$subdom.private" >> /etc/postfix/dkim/keytable
  16. echo "*@$domain $subdom._domainkey.$domain" >> /etc/postfix/dkim/signingtable
  17. systemctl reload opendkim postfix
  18. # Print out DKIM TXT entry.
  19. 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=.*')"
  20. dkimentry="$subdom._domainkey.$domain TXT v=DKIM1; k=rsa; $pval"
  21. dmarcentry="_dmarc.$domain TXT v=DMARC1; p=reject; rua=mailto:dmarc@$domain; fo=1"
  22. spfentry="$domain TXT v=spf1 mx a:$maildomain -all"
  23. mxentry="$domain MX 10 $maildomain 300"
  24. echo "$dkimentry
  25. $dmarcentry
  26. $spfentry
  27. $mxentry" >> "$HOME/dns_emailwizard_added"
  28. echo "=== ADD THE FOLLOWING TO YOUR DNS TXT RECORDS ==="
  29. echo "$dkimentry
  30. $dmarcentry
  31. $spfentry
  32. $mxentry"
  33. echo "They have also been stored in ~/dns_emailwizard_added"