Currently generate-dkim-config checks if postfix-virtual.cf file exists and that there are domains in that file. This works for a basic configurations but doesn't work when using more complex configurations, e.q. using SQL database for transport maps.
Another script could be added, e.q. generate-dkim-domain(?), which would just generate DKIM key for a domain.
Example of the script
#!/bin/sh
set -e
if [ $# -ne 1 ]; then
echo $0: "usage: ./generate-dkim.sh domain"
exit 1
fi
DOMAIN=$1
mkdir -p /tmp/docker-mailserver/opendkim/keys/$DOMAIN
if [ ! -f "/tmp/docker-mailserver/opendkim/keys/$DOMAIN/mail.private" ]; then
echo "Creating DKIM private key /tmp/docker-mailserver/opendkim/keys/$DOMAIN/mail.private"
opendkim-genkey --subdomains --domain=$DOMAIN --selector=mail -D /tmp/docker-mailserver/opendkim/keys/$DOMAIN
fi
# Write to KeyTable if necessary
keytableentry="mail._domainkey.$DOMAIN $DOMAIN:mail:/etc/opendkim/keys/$DOMAIN/mail.private"
if [ ! -f "/tmp/docker-mailserver/opendkim/KeyTable" ]; then
echo "Creating DKIM KeyTable"
echo $keytableentry > /tmp/docker-mailserver/opendkim/KeyTable
else
if ! grep -q "$keytableentry" "/tmp/docker-mailserver/opendkim/KeyTable" ; then
echo $keytableentry >> /tmp/docker-mailserver/opendkim/KeyTable
fi
fi
# Write to SigningTable if necessary
signingtableentry="*@$DOMAIN mail._domainkey.$DOMAIN"
if [ ! -f "/tmp/docker-mailserver/opendkim/SigningTable" ]; then
echo "Creating DKIM SigningTable"
echo "*@$DOMAIN mail._domainkey.$DOMAIN" > /tmp/docker-mailserver/opendkim/SigningTable
else
if ! grep -q "$signingtableentry" "/tmp/docker-mailserver/opendkim/SigningTable" ; then
echo $signingtableentry >> /tmp/docker-mailserver/opendkim/SigningTable
fi
fi
Currently generate-dkim-config checks if postfix-virtual.cf file exists and that there are domains in that file. This works for a basic configurations but doesn't work when using more complex configurations, e.q. using SQL database for transport maps.
Another script could be added, e.q. generate-dkim-domain(?), which would just generate DKIM key for a domain.
Example of the script