Ich habe Aliase in Postfix eingerichtet, wie zum Beispiel die folgenden:
[email protected]: [email protected], [email protected] ...
Wenn eine E-Mail an [email protected] gesendet wird und einer der Empfänger in diesem Alias "cc: ed" lautet (dh "Allen antworten"), wird die E-Mail in doppelter Ausfertigung zugestellt. Wenn zum Beispiel eine E-Mail an [email protected] gesendet wird und [email protected] cc: ed lautet, wird sie zweimal zugestellt. Laut den Postfix-FAQ ist dies beabsichtigt , da Postfix E-Mails parallel sendet, ohne die Gruppen zu erweitern. Dies macht es schneller als sendmail. Nun, das ist alles in Ordnung, aber ist es möglich, Postfix so zu konfigurieren, dass doppelte Empfänger tatsächlich entfernt werden, bevor die E-Mail gesendet wird?
Ich habe viele Posts von Leuten aus dem ganzen Netz gefunden, die das gleiche Problem haben, aber ich habe noch keine Antwort gefunden. Wenn dies in Postfix nicht möglich ist, ist es möglich, es irgendwo auf dem Weg zu tun? Ich habe versucht, meine Benutzer zu schulen, aber ich fürchte, es ist ziemlich vergeblich ...
Ich verwende Postfix unter Mac OS X Server 10.6, amavis ist als content_filter und dovecot als mailbox_command eingestellt. Ich habe versucht, procmail als content_filter für die SMTP-Zustellung einzurichten (gemäß dem nachstehenden Vorschlag), aber ich kann es scheinbar nicht richtig verstehen. Aus verschiedenen Gründen kann ich die Standardkonfiguration von OS X nicht ersetzen, dh Postfix, Amavis und Dovecot bleiben erhalten. Ich kann es jedoch ergänzen, wenn ich es wünsche.
quelle
Antworten:
Postfix hat aufgrund seiner Struktur keine Ahnung von doppelten E-Mails. Es ist möglich, mit procmail als Zustellungsagenten das zu tun, was Sie vorschlagen.
Grundsätzlich sollte jede von einem Client kommende Nachricht mit einer eindeutigen Nachrichten-ID zugestellt werden. Für den Fall, dass es mehreren Personen zugestellt wird, sollte die Nachrichten-ID identisch sein. Daher speichern wir alle
Message-Id
Header, die wir gesehen haben, und verwerfen zukünftige, die mit dieser Liste übereinstimmen.Von http://novosial.org/procmail/
quelle
content_filter
dieselbe Aufgabe auf globaler Ebene ausführen könnenEs gibt eine Möglichkeit, dies zu tun, aber Postfix selbst nicht zu verwenden.
Wenn Sie ein relativ neues Dovecot mit Pigeonhole-Implementierung von Sieve verwenden , gibt es eine spezielle Erweiterung, die für die Deduplizierung bei Lieferung verwendet werden kann. In Dovecot älter als 2.2.18 lautet der Name dieser Erweiterung "vnd.dovecot.duplicate" und ist standardmäßig deaktiviert. In neueren Versionen heißt die Erweiterung "duplicate" und sollte bereits aktiviert sein, wird dies jedoch nicht ausdrücklich tun Schaden.
/etc/dovecot/conf.d/90-sieve.conf:
Erstellen Sie dann das Siebskript, um die Deduplizierung selbst durchzuführen (Sie können den Dateinamen nach Belieben anpassen).
/mnt/mail/users/global_sieve/deduplicate.sieve:
Kompilieren Sie das Skript mit Sievec und stellen Sie sicher, dass das Skript für den Taubenschlagbenutzer lesbar ist . Weitere Informationen finden Sie in den Dovecot-Dokumenten.
Wenn Sie Cyrus verwenden, gibt es eine Funktion zur Unterdrückung doppelter Nachrichtenübermittlungen , die mit aktiviert werden kann
suppress_duplicates = yes
.quelle
duplicate
Erweiterung funktioniert auf Benutzerebene. Ich habe versucht, Duplikate über mehrere Benutzer To / Cc-d in einer zentralenfileinto
Mailbox zu stoppen . Das geht nicht. Muß auch eine Postfix gesetztvirtual_alias_maps
allumfassenden Eintrag, wie@domain.com [email protected]
, dann ist die Sieb Dublettenprüfung wird getroffencatchall
Benutzer doppelte Liste.Eine Lösung, die für mich funktioniert, ist Add-
-o receive_override_options=no_address_mappings
Onmaster.cf
Hier das Dokument: http://www.postfix.org/postconf.5.html#receive_override_options
quelle
Dies ist aus einer alten Postfix-FAQ:
Postfix sendet doppelte E-Mails Einige Leute beschweren sich, dass Postfix doppelte Nachrichten sendet. Dies geschieht immer dann, wenn eine Nachricht an mehrere Adressen gesendet wird, die denselben Benutzer erreichen. Beispiele für solche Szenarien sind:
Von Natur aus sehen Sie dieses Verhalten. Wenn Sie möglicherweise einen Inhaltsfilter finden, der doppelte Nachrichten-IDs entfernen kann, können Sie dies nach dem Übermittlungsereignis beheben.
Sendmail hat dieses Problem nicht, da es zuerst alles erweitert und Duplikate entfernt.
quelle
Die offizielle Lösung finden Sie hier. Http://osdir.com/ml/mail.postfix.devel/2007-05/msg00010.html
duplicate_filter_limit (10000) Die maximale Anzahl von Adressen, an die sich die Empfänger-Duplikatfilter für Aliase (5) oder virtuelle Alias-Erweiterungen (5) oder für Warteschlangenanzeigen mit showq (8) erinnern (bei früheren Postfix-Versionen war das Standardlimit 1000).
duplicate_filter_style (strict) Die Filterrichtlinie für doppelte Empfänger: strict oder pragmatisch.
quelle
Ich habe das in meine main.cf eingefügt und es hat gut funktioniert, aber nur für E-Mails, die von meiner Domain gesendet wurden. Ich habe immer noch Duplikate, wenn ich E-Mails von außerhalb meiner Domain sende (z. B. Yahoo an meine Domain).
Quelle: http://article.gmane.org/gmane.mail.postfix.user/119783
quelle