Zum Inhalt springen
Procmail Mailinglist (Variante 2)

Procmail Mailinglist (Variante 2)

.procmailrc

Für das Postfach in dem eingehende Mails an die Mailinglist(s) terminieren

.procmailrc
SHELL=/bin/bash

VERBOSE=no
#LOGFILE=/tmp/procmail-vt.log
#LOGABSTRACT=all

FROM=`formail -xFrom: | sed -e 's/ *(.*)//; s/>.*//; s/.*[:<] *//'`

###########################################################

:0
* ^To:.*ml1@
* ? fgrep -qxis $FROM /home/.mailinglists/user1/list1
| /usr/local/bin/mailinglist "/home/.mailinglists/user1/list1" "ML1"

###########################################################

:0
* ^To:.*ml2@
* ? fgrep -qxis $FROM /home/.mailinglists/user1/list2
| /usr/local/bin/mailinglist "/home/.mailinglists/user1/list2" "ML2"

###########################################################

:0
| /dev/null
/usr/local/bin/mailinglist
#!/bin/bash

MAIL=$(cat /dev/stdin)

FROM=$(echo "${MAIL}" | formail -xFrom: | sed -e 's/ *(.*)//; s/>.*//; s/.*[:<] *//')

if [ "x${2}" != "x" ]; then
  MAIL=$(echo "${MAIL}" | /bin/sed -e "s/Subject: /Subject: \x5B${2}\x5D /g")
fi

if [ "x${1}" != "x" ]; then
  if [ -f "${1}" ]; then
    for RECP in $(cat ${1}); do
      MAIL=$(echo "$MAIL" | formail -I "To: ${RECP}")
      echo "${MAIL}" | /usr/sbin/sendmail -t -r "${FROM}"
    done
  fi
fi

/home/.mailinglists/user1/list1

Auflistung der Empfänger, eine E-Mail Adresse pro Zeile

/home/.mailinglists/user1/list1
mail1@domain
mail2@domain
mail3@domain

/home/.mailinglists/user1/list2

Auflistung der Empfänger, eine E-Mail Adresse pro Zeile

/home/.mailinglists/user1/list2
mail3@domain
mail4@domain
mail5@domain
Zuletzt aktualisiert am