42 lines
1.2 KiB
Bash
42 lines
1.2 KiB
Bash
#!/bin/bash
|
|
|
|
# setup opendkim configuration and domains
|
|
mkdir -p /etc/dkimkeys
|
|
truncate -s0 /etc/dkimkeys/{keytable,signingtable,trustedhosts}
|
|
|
|
cat - <<EOF > /etc/opendkim.conf
|
|
KeyTable file:/etc/dkimkeys/keytable
|
|
SigningTable refile:/etc/dkimkeys/signingtable
|
|
InternalHosts refile:/etc/dkimkeys/trustedhosts
|
|
Socket inet:8891@0.0.0.0
|
|
OversignHeaders From
|
|
TrustAnchorFile /usr/share/dns/root.key
|
|
UserID opendkim
|
|
EOF
|
|
|
|
cat - <<EOF > /etc/dkimkeys/trustedhosts
|
|
0.0.0.0/0
|
|
*
|
|
EOF
|
|
|
|
{% for domain in lsdir("/dkimkey") %}
|
|
|
|
mkdir -p /etc/dkimkeys/{{ domain }}
|
|
|
|
{% for selector in ls(printf ("/dkimkey/%s", domain)) %}
|
|
|
|
echo '{{ selector }}._domainkey.{{ domain }} {{ domain }}:{{ selector }}:/etc/dkimkeys/{{ domain }}/{{ selector }}.private' >> /etc/dkimkeys/keytable
|
|
echo '*@{{ domain }} {{ selector }}._domainkey.{{ domain }}' >> /etc/dkimkeys/signingtable
|
|
cat - <<EOKEY > /etc/dkimkeys/{{ domain }}/{{ selector }}.private
|
|
{% for keyline in (replace(getv(printf("/dkimkey/%s/%s",domain,selector)),"\\n","!",-1)|split:"!") %}
|
|
{{ keyline }}
|
|
{% endfor %}
|
|
EOKEY
|
|
|
|
{% endfor %}
|
|
|
|
chown -R opendkim:opendkim /etc/dkimkeys/{{ domain }}
|
|
chmod -R u+rw,go-rw /etc/dkimkeys/{{ domain }}
|
|
|
|
{% endfor %}
|