Procmail: Eingehende Nachrichten weiterleiten und Benachrichtigung an eine andere E-Mail-Adresse senden

Procmail: Eingehende Nachrichten weiterleiten und Benachrichtigung an eine andere E-Mail-Adresse senden

Wenn von bestimmten E-Mail-Adressen eine E-Mail eingeht, möchte ich diese E-Mail an eine E-Mail-Adresse weiterleiten und eine Benachrichtigung an eine andere senden.

Ich habe versucht, sowohl Formail zu verwenden als auch ein Bash-Skript direkt von Procmail aus auszuführen, aber ich bekomme es nicht zum Laufen.

Die E-Mail sollte unverändert weitergeleitet werden, die Benachrichtigungs-E-Mail sollte jedoch nach Möglichkeit nur die E-Mail-Adresse und den Betreff des Absenders enthalten (keine Voraussetzung).

Hier ist mein neuster Versuch eines Procmail-Rezeptes:

:0
* ! ^From:.*[email protected]
* ! ^From:.*[email protected]
* ! ^From:.*[email protected]
{ }
:0 E
{
  :0 c
  ! [email protected]

  :0 h
  | /usr/local/bin/notify_mail.sh $FROM $SUBJECT
}

Mein notify_mail.sh:

#!/bin/bash

echo -e "Hi,\n\nNew e-mail has arrived:\n\nFROM: $1\nSUBJECT $2" | mail -s "$2" [email protected]

Antwort1

Ihr Skript sollte so funktionieren, aber Sie füllen die Variablen und nicht aus FROM. SUBJECTSie sollten im AllgemeinenSetzen Sie für Ihre Shellvariablen Zitierungen.

Versuche dies:

0
* ! ^From:.*email@example\.org
* ! ^From:.*support@example\.com
* ! ^From:.*santa@northpole\.no
{ }
:0 E
{
  :0 c
  ! [email protected]

  FROM=`formail -rtzxTo:`
  SUBJECT=`formail -zxSubject:`
  :0 h
  | /usr/local/bin/notify_mail.sh "$FROM" "$SUBJECT"
}

Die formail -rtzxTo:Redewendung ist etwas knifflig und wird beispielsweise hier erklärt:https://stackoverflow.com/a/50890026/874188

Beachten Sie auch die Backslashes vor den wörtlichen Punkten in den regulären Ausdrücken.

Das Skript sollte wahrscheinlich printfover bevorzugen echo -e. Es gibt hier nichts Bash-spezifisches, also habe ich mir auch die Freiheit genommen, den Shebang zu ändern.

#!/bin/sh
printf "Hi,\n\nNew e-mail has arrived:\n\nFROM: %s\nSUBJECT %s\n" "$1" "$2" |
mail -s "$2" [email protected]

verwandte Informationen