summaryrefslogtreecommitdiff
path: root/emailwiz.sh
diff options
context:
space:
mode:
authorLuke Smith <luke@lukesmith.xyz>2022-09-28 11:20:49 -0400
committerLuke Smith <luke@lukesmith.xyz>2022-09-28 11:20:49 -0400
commitae2ee398f6d99191e2d741dc87e08f81ee560fe2 (patch)
tree2917c8d1ffbef94a1c7f7bcd22120bc5fea997c9 /emailwiz.sh
parent860185e557ed06e5e87003efbfdb9c8736846500 (diff)
parentf552787e7b3210891ca6863b91af259488f1efb5 (diff)
Merge branch 'master' of github.com:LukeSmithxyz/emailwiz
Diffstat (limited to 'emailwiz.sh')
-rwxr-xr-xemailwiz.sh19
1 files changed, 12 insertions, 7 deletions
diff --git a/emailwiz.sh b/emailwiz.sh
index 818cb3d..faa1a6d 100755
--- a/emailwiz.sh
+++ b/emailwiz.sh
@@ -37,21 +37,21 @@ echo "Setting umask to 0022..."
umask 0022
echo "Installing programs..."
-apt install postfix postfix-pcre dovecot-imapd dovecot-sieve opendkim spamassassin spamc
+apt-get install postfix postfix-pcre dovecot-imapd dovecot-sieve opendkim spamassassin spamc
# Check if OpenDKIM is installed and install it if not.
-which opendkim-genkey >/dev/null 2>&1 || apt install opendkim-tools
+which opendkim-genkey >/dev/null 2>&1 || apt-get install opendkim-tools
domain="$(cat /etc/mailname)"
subdom=${MAIL_SUBDOM:-mail}
maildomain="$subdom.$domain"
certdir="/etc/letsencrypt/live/$maildomain"
-[ ! -d "$certdir" ] && certdir="$(dirname "$(certbot certificates 2>/dev/null | grep "$maildomain\|*.$domain" -A 2 | awk '/Certificate Path/ {print $3}' | head -n1)")"
+[ ! -d "$certdir" ] &&
+ possiblecert="$(certbot certificates 2>/dev/null | grep "$maildomain\|*\.$domain" -A 2 | awk '/Certificate Path/ {print $3}' | head -n1)" &&
+ certdir="${possiblecert%/*}"
[ ! -d "$certdir" ] && echo "Note! You must first have a Let's Encrypt Certbot HTTPS/SSL Certificate for $maildomain.
-Use Let's Encrypt's Certbot to get that and then rerun this script.
-
-You may need to set up a dummy $maildomain site in nginx or Apache for that to work." && exit 1
+Use Let's Encrypt's Certbot to get that and then rerun this script." && exit 1
# NOTE ON POSTCONF COMMANDS
@@ -311,18 +311,23 @@ systemctl daemon-reload
for x in spamassassin opendkim dovecot postfix; do
printf "Restarting %s..." "$x"
service "$x" restart && printf " ...done\\n"
+ systemctl enable "$x"
done
# If ufw is used, enable the mail ports.
pgrep ufw >/dev/null && { ufw allow 993; ufw allow 465 ; ufw allow 587; ufw allow 25 ;}
-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/$domain/$subdom.txt" | sed "s/k=rsa.* \"p=/k=rsa; p=/;s/\"\s*\"//;s/\"\s*).*//" | 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"
useradd -m -G mail dmarc
+grep -q '^deploy-hook = echo "$RENEWED_DOMAINS" | grep -q' /etc/letsencrypt/cli.ini ||
+ echo "
+deploy-hook = echo \"\$RENEWED_DOMAINS\" | grep -q '$maildomain' && service postfix reload && service dovecot reload" >> /etc/letsencrypt/cli.ini
+
echo "$dkimentry
$dmarcentry
$spfentry" > "$HOME/dns_emailwizard"