Ich muss einen Filter für ausgehende E-Mails erstellen. Um Nachrichten zu kopieren, wenn "An" die angegebene E-Mail-Adresse enthält. Ich habe:
# rule:[Copy to slack]
if address :contains "to" "[email protected]"
{
redirect :copy "[email protected]";
}
und ich versuche
# rule:[Copy to slack]
if address :contains "to" "[email protected]"
{
redirect :copy "[email protected]";
}
oder
# rule:[Copy to ]
if address :contains "to" "[email protected]"
{
fileinto "INBOX.Redmine";
}
Aber jedes Mal funktioniert der Filter nicht.
Dies funktioniert nur, wenn ich von der Adresse sende, die ich im Feld „An“ angegeben habe, oder von einer anderen lokalen E-Mail-Adresse.
Irgendwelche Ideen?
Antwort1
Das funktioniert nicht, weil es so nicht funktionieren kann:Wenn Sie E-Mails senden, senden Sie diese über Port 465 direkt an Postfix – es wird kein Sieve-Skript ausgeführt.
Wenn Sie die Sieve-Sprache für die Arbeit mit ausgehenden E-Mails verwenden möchten, müssen Sie wesentlich mehr Aufwand betreiben, da sie nicht gut in gängige Software integriert ist, jedenfalls nicht annähernd so gut wie die Pigeonhole-Sieve-Integration in Dovecot, die nur in zwei speziellen Anwendungsfällen ausgelöst wird:
- beim Empfangen von Post, auch bekannt alsletzte LieferungStadium der E-Mail, die für ein von Dovecot verwaltetes Postfach bestimmt ist, oder
- zur Verwaltung eines Postfachs, insbesondere Aktionen eines lokalen oder über IMAP verbundenen Clients in einem von Dovecot verwalteten Postfach.
Beachten Sie, dass diese Integration den Fall der E-Mail-Übermittlung nicht behandelt: Obwohl Dovecot einen Übermittlungsproxy enthält, ist er in dieser Hinsicht im Allgemeinen überhaupt nicht involviert und in den seltenen Fällen, in denen er verwendet wird, behandelt Sieve ihn immer noch nicht.
Sie haben jetzt einige Optionen:
- Lösen Sie Ihr Skript für E-Mails aus, die in einem „Gesendet“-Postfach gespeichert sind (es wirkt sich jedoch nicht auf E-Mails aus, die nicht in diesem Postfach gespeichert sind).
- Ersetzen Sie Ihr Skript durch die integrierte Funktionalität von Postfix.Empfänger_BCC_Kartenkommt in den Sinn
- Konfigurieren Sie Postfix
header_checks
so, dass E-Mails, die nicht Ihren Richtlinien entsprechen, einfach abgelehnt werden (z. B. indem der gewünschte An:-Header übersprungen wird und dann alle unvollständigen Versionen abgelehnt werden). - Konfigurieren Sie die Kopie in einem Milter/Filter
- Konfigurieren Sie eine (vorzugsweise neue, lokale) Adresse, die Sie so einrichten, dass sie auf die beiden Adressen erweitert wird, an die Sie die E-Mails senden möchten, und lassen Sie die Benutzer ihre E-Mails dorthin senden
- Leiten Sie E-Mails für diesen Empfänger an ein Skript weiter, möglicherweise an eines, das Ihr Sieve-Skript verwendet (wahrscheinlich nicht Ihre beste Lösung: Die Verwendung von Sieve außerhalb des LDA-Anwendungsfalls wird von keiner vorhandenen Software gut unterstützt).