X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=mail-setup;h=11f8dffe089dc81613f83513cbcd5e2562df351d;hb=63acc2d602eb316a1c0abb7ec842e4789c8beaec;hp=645510a14049d1c0ff8d61e313a1843b75426ed3;hpb=202b0a155c831a43d5128b04497db850c21c8ad2;p=distro-setup diff --git a/mail-setup b/mail-setup index 645510a..11f8dff 100755 --- a/mail-setup +++ b/mail-setup @@ -15,12 +15,13 @@ set -x # See the License for the specific language governing permissions and # limitations under the License. -# todo: make quick backups of maildir, or deliver to multiple hosts. +# TODO: copy dkim keys from within this file. its now done in conflink. +# TODO: fix dkim key to b chmod 640, group Debian-exim set -eE -o pipefail trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR -[[ $EUID == 0 ]] || exec sudo -E "$BASH_SOURCE" "$@" +[[ $EUID == 0 ]] || exec sudo -E "${BASH_SOURCE[0]}" "$@" if [[ ! $SUDO_USER ]]; then echo "$0: error: requires running as nonroot or sudo" exit 1 @@ -161,7 +162,7 @@ pi() { # package install if [[ ! -r $f ]] || (( $(( $(date +%s) - $(stat -c %Y $f ) )) > 60*60*12 )); then apt-get update fi - apt-get -y install --purge --auto-remove "$@" + DEBIAN_FRONTEND=noninteractive apt-get -y install --purge --auto-remove "$@" } postmaster=alerts @@ -176,6 +177,9 @@ forward=$u@$mxhost smarthost="$mxhost::$mxport" # exim +# light version of exim does not have sasl auth support. +pi exim4-daemon-heavy spamassassin spf-tools-perl + # trisquel 8 = openvpn, debian stretch = openvpn-client vpn_ser=openvpn-client if [[ ! -e /lib/systemd/system/openvpn-client@.service ]]; then @@ -193,7 +197,8 @@ else fi -pi openvpn +# light version of exim does not have sasl auth support. +pi exim4-daemon-heavy spamassassin spf-tools-perl openvpn dnsmasq if [[ -e /p/c/filesystem ]]; then # allow failure of these commands when our internet is down, they are likely not needed, @@ -340,10 +345,11 @@ EOF #### begin mail cert setup ### f=/usr/local/bin/mail-cert-cron cat >$f <<'EOF' +#!/bin/bash set -eE -o pipefail trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR -[[ $EUID == 0 ]] || exec sudo "$BASH_SOURCE" "$@" +[[ $EUID == 0 ]] || exec sudo -E "${BASH_SOURCE[0]}" "$@" f=/a/bin/bash_unpublished/source-state if [[ -e $f ]]; then @@ -471,8 +477,6 @@ EOF # enable 587 in addition to the default 25, so that # i can send mail where port 25 is firewalled by isp daemon_smtp_ports = 25 : 587 -# i don't have ipv6 setup for my vpn tunnel yet. -disable_ipv6 = true MAIN_TLS_ENABLE = true @@ -544,7 +548,7 @@ EOF cat >$f <<'EOF' #!/bin/bash cd /etc -wget -nv -N https://publicsuffix.org/list/public_suffix_list.dat +wget -q -N https://publicsuffix.org/list/public_suffix_list.dat EOF chmod 755 $f @@ -566,6 +570,9 @@ EOF # internet. I was torn about whether to do this or not, meh. pi dovecot-core dovecot-imapd dovecot-sieve dovecot-lmtpd + for f in /p/c/subdir_files/sieve/*sieve /a/c/subdir_files/sieve/*sieve; do + sudo -u $u /a/exe/lnf -T $f $(eval echo ~$u)/sieve/${f##*/} + done # if we changed 90-sieve.conf and removed the active part of the # sieve option, we wouldn\'t need this, but I\'d rather not modify a # default config if not needed. This won\'t work as a symlink in /a/c @@ -689,7 +696,7 @@ EOF # it\'s not part of exim rm -f /etc/exim4/conf.d/main/000_localmacros cat >>/etc/exim4/update-exim4.conf.conf <$f <<'EOF' + cat >$f <<'EOFOUTER' #!/bin/bash -echo body_test | mail -s "primary_test $(date +%s) $(date +%Y-%m-%dT%H:%M:%S%z)" iank@posteo.de +/usr/sbin/exim -t </etc/cron.d/mailtest <&1 | /usr/local/bin/log-once send-test-forward +*/10 * * * * $u /usr/local/bin/mailtest-check 2>&1 | /usr/local/bin/log-once -1 mailtest-check +*/10 * * * * root chmod -R g+rw /m/md/bounces 2>&1 | /usr/local/bin/log-once -1 bounces-chmod EOF cp /a/bin/distro-setup/filesystem/usr/local/bin/mailtest-check /usr/local/bin else