From 22903e3000ec12ee49bd28d136f63078bd676c46 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Thu, 10 Feb 2022 08:17:29 -0300 Subject: Feat: adds minimailer --- minimailer | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100755 minimailer diff --git a/minimailer b/minimailer new file mode 100755 index 0000000..09c66ae --- /dev/null +++ b/minimailer @@ -0,0 +1,59 @@ +#!/usr/bin/env bash +# +# Send mails based on a template and a recipient list using MSMTP. +# +# See also https://hostpresto.com/community/tutorials/how-to-send-email-from-the-command-line-with-msmtp-and-mutt/ +# https://deaddabe.fr/blog/2021/10/06/sending-templated-emails-using-python-and-msmtp/ +# + +# Example template file +cat > /dev/null < /dev/null < +somebody@example.org +EOF + +# Parameters +BASENAME="`basename $0`" +BASEDIR="`dirname $0`" +#TEMPLATE="$BASEDIR/message.tmpl" +#RECIPIENTS="$BASEDIR/recipients.lst" +#MSMTP_ACCOUNT="my-smtp-account-from-msmtprc" +TEMPLATE="$1" +RECIPIENTS="$2" +MSMTP_ACCOUNT="$3" + +# Checks +if [ -z "$MSMTP_ACCOUNT" ]; then + echo "usage: $BASENAME " + echo "example: $BASENAME message.tmpl recipients.lst my-provider" + echo "check the source code for template and recipient filelist formats" + exit 1 +elif [ ! -e "$TEMPLATE" ] || [ ! -e "$RECIPIENTS" ]; then + echo "missing config files" + exit 1 +fi + +# Dispatch +cat $RECIPIENTS | while read recipient; do + # Thanks for the quick sed regexp: + # https://linuxconfig.org/extract-email-address-from-a-text-file + address="`echo $recipient | sed -r 's/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/\n&\n/ig;s/(^|\n)[^@]*(\n|$)/\n/g;s/^\n|\n$//g;/^$/d'`" + + sed -e "s/\$recipient/$recipient/g" $TEMPLATE | \ + msmtp -a $MSMTP_ACCOUNT $address +done -- cgit v1.2.3