mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
43 lines
1.2 KiB
Bash
Executable file
43 lines
1.2 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
do_pre_regen() {
|
|
pending_dir=$1
|
|
|
|
cd /usr/share/yunohost/conf/opendkim
|
|
|
|
install -D -m 644 opendkim.conf "${pending_dir}/etc/opendkim.conf"
|
|
}
|
|
|
|
do_post_regen() {
|
|
mkdir -p /etc/dkim
|
|
|
|
# Create / empty those files because we're force-regenerating them
|
|
echo "" > /etc/dkim/keytable
|
|
echo "" > /etc/dkim/signingtable
|
|
|
|
# create DKIM key for domains
|
|
domain_list="$(yunohost domain list --features mail_in mail_out --output-as json | jq -r ".domains[]" | tr '\n' ' ')"
|
|
for domain in $domain_list; do
|
|
domain_key="/etc/dkim/${domain}.mail.key"
|
|
[ ! -f "$domain_key" ] && {
|
|
# We use a 1024 bit size because nsupdate doesn't seem to be able to
|
|
# handle 2048...
|
|
opendkim-genkey --domain="$domain" \
|
|
--selector=mail --directory=/etc/dkim -b 1024
|
|
mv /etc/dkim/mail.private "$domain_key"
|
|
mv /etc/dkim/mail.txt "/etc/dkim/${domain}.mail.txt"
|
|
}
|
|
|
|
echo "mail._domainkey.${domain} ${domain}:mail:${domain_key}" >> /etc/dkim/keytable
|
|
echo "*@$domain mail._domainkey.${domain}" >> /etc/dkim/signingtable
|
|
done
|
|
|
|
chown -R opendkim /etc/dkim/
|
|
chmod 700 /etc/dkim/
|
|
|
|
systemctl restart opendkim
|
|
}
|
|
|
|
do_$1_regen ${@:2}
|