#! /bin/bash set -e if [[ ${#} -ne 1 ]] then echo "${0}: usage: generate-dkim-domain domain" exit 1 fi DOMAINNAME=${1} mkdir -p "/tmp/docker-mailserver/opendkim/keys/${DOMAINNAME}" if [[ ! -f "/tmp/docker-mailserver/opendkim/keys/${DOMAINNAME}/mail.private" ]] then echo "Creating DKIM private key /tmp/docker-mailserver/opendkim/keys/${DOMAINNAME}/mail.private" opendkim-genkey --subdomains --domain="${DOMAINNAME}" --selector=mail -D "/tmp/docker-mailserver/opendkim/keys/${DOMAINNAME}" fi # Write to KeyTable if necessary KEYTABLEENTRY="mail._domainkey.${DOMAINNAME} ${DOMAINNAME}:mail:/etc/opendkim/keys/${DOMAINNAME}/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="*@${DOMAINNAME} mail._domainkey.${DOMAINNAME}" if [[ ! -f /tmp/docker-mailserver/opendkim/SigningTable ]] then echo "Creating DKIM SigningTable" echo "*@${DOMAINNAME} mail._domainkey.${DOMAINNAME}" > /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