wird procmail eingehende E-Mails basierend auf: "taggen", aber nur, wenn sie nicht bereits markiert ist?

348
hymie

Wenn Sie also gesehen / verwendet werden mailman, wissen Sie, dass [groupname]die Betreffzeile der durch sie gesendeten E-Mails mit einem Tag versehen wird, sofern das Tag noch nicht vorhanden ist.

Kann das mit gemacht werden procmail?

Ich habe meine E-Mail-Maschine zu Hause exim. Ich habe ein paar E-Mail-Aliase, die E-Mails einfach an mich oder manchmal an mich und meine Frau weiterleiten.

Es wäre wirklich schön, wenn diese E-Mails ein Betreff-Tag enthalten, das ich leicht zum Suchen / Filtern dieser E-Mails verwenden kann. Etwas Ähnliches mailmanhat [groupname]in der Betreffzeile, aber ich möchte nicht, / müssen alle Funktionen von mailman.

Bitte beachten Sie, dass mein E-Mail-Client dies nicht tut. Ich möchte / muss / möchte es wirklich auf dem E-Mail-Server tun.

0

1 Antwort auf die Frage

0
tripleee

Sie benötigen grundsätzlich Shell-Zugriff auf den Mail-Server, um Procmail dort ausführen zu können. Wenn Sie über die erforderlichen Berechtigungen verfügen, ist es einfach, das zu tun, was Sie möchten, obwohl Ihre Anforderungen leicht unklar sind.

Ich gehe davon aus, dass Sie [groupname]Nachrichten hinzufügen möchten, groupname-list@example.netfalls diese noch nicht vorhanden sind.

:0fhw * ^From: groupname-list@example\.net\> * ! ^Subject:( Re:)? *\[groupname] * ^Subject:\/.+ | formail -I "Subject: [groupname]$MATCH" 

Das fFlag sagt, dass der Header durch Filtern der Pipeline in der Aktion geändert werden soll. die hMittel, auf die sich die Aktion bezieht, gilt nur für den Header (um die Datenmenge zu verringern, die unmodifiziert vor und zurück kopiert wird); und das wsagt, um zu überprüfen, ob die Aktion erfolgreich ist.

Das \/spezielle Regex-Token bewirkt, dass die Übereinstimmung nach der Registrierung in der speziellen Variablen erfasst wird MATCH.

Da Punkt und linke eckige Klammern Regex-Metazeichen sind, benötigen wir einen Backslash, um sie wörtlich abzugleichen. Die \>Wortgrenze stellt sicher, dass netes sich nicht um eine teilweise Übereinstimmung in einer längeren Adresse handelt (zum Beispiel ...@example.netcom.whatever), obwohl sie nicht absolut narrensicher ist ( ...@example.net.ukz. B. würde sie immer noch passen ).

In jedem Fall müssen Sie die erste Bedingung durch eine Bedingung ersetzen, die genau auf einen Header in den Nachrichten passt, auf die Sie abzielen. Zum Beispiel stimmt das hier nicht überein From: List Name <groupname-list@example.net>(da der Regex keinen Ausdruck enthält, um den Text durch das <Zeichen zu überspringen ).

Der Rest sollte trivial sein, hoffe ich.

Ich habe einige spekulative Texte über die Einrichtung der Pipe in Exim entfernt. Ich googelte ein bisschen und meine Spekulationen scheinen weit weg zu sein. tripleee vor 8 Jahren 0
Meine Bitte war nicht so klar, wie es hätte sein können. Aber ich denke, Sie haben mir den Hinweis gegeben, dass ich herausfinden muss, was ich versuche. Der einzige wirkliche Unterschied besteht darin, dass ich mich auf die Adresse An: stütze und nicht auf die Adresse From:. Lass es mich ausprobieren ... hymie vor 8 Jahren 0