ansible-roles/opendkim/files/opendkim-add.sh

47 lines
1.3 KiB
Bash

#!/bin/sh
if [ "$#" -ne 1 ]; then
echo "Usage : $0 example.com" >&2
exit 1
fi
domain="$(echo "$1"|xargs)"
mkdir -pm 0750 "/etc/opendkim/keys/${domain}"
chown opendkim:opendkim "/etc/opendkim/keys/${domain}"
if [ ! -f "/etc/opendkim/keys/${domain}/default.private" ]; then
cd "/etc/opendkim/keys/${domain}"
echo "Generate DKIM keys ..."
sudo -u opendkim opendkim-genkey -r -d "${domain}"
chmod 640 /etc/opendkim/keys/${domain}/*
fi
grep -q "${domain}" /etc/opendkim/TrustedHosts
if [ "$?" -ne 0 ]; then
echo "Add ${domain} to TrustedHosts ..."
echo "${domain}" >> /etc/opendkim/TrustedHosts
fi
grep -q "${domain}" /etc/opendkim/KeyTable
if [ "$?" -ne 0 ]; then
echo "Add ${domain} to KeyTable ..."
echo "default._domainkey.${domain} ${domain}:default:/etc/opendkim/keys/${domain}/default.private" >> /etc/opendkim/KeyTable
fi
grep -q "${domain}" /etc/opendkim/SigningTable
if [ "$?" -ne 0 ]; then
echo "Add ${domain} to SigningTable ..."
echo "*@${domain} default._domainkey.${domain}" >> /etc/opendkim/SigningTable
fi
systemctl reload opendkim
if [ "$?" -eq 0 ]; then
echo "OpenDKIM successfully reloaded"
echo "Public key is in : /etc/opendkim/keys/${domain}/default.txt"
exit 0
else
echo "An error has occurred while opendkim reload, please FIX configuration !" >&2
exit 1
fi