Mam skonfigurowane aliasy w Postfiksie, takie jak następujące:
[email protected]: [email protected], [email protected] ...
Kiedy wiadomość e-mail jest wysyłana na adres all@moja_domena.com, a każdy adresat w tym aliasie jest cc: ed, co jest dość powszechne (tj. „Odpowiedz wszystkim”), wiadomość e-mail jest dostarczana w dwóch egzemplarzach. Na przykład, jeśli wiadomość e-mail zostanie wysłana na adres [email protected], a [email protected] to cc: ed, zostanie dostarczona dwukrotnie. Zgodnie z często zadawanymi pytaniami dotyczącymi Postfix jest to projekt, ponieważ Postfix wysyła e-maile równolegle bez rozwijania grup, co czyni go szybszym niż sendmail. Teraz wszystko jest w porządku i eleganckie, ale czy można skonfigurować Postfix, aby faktycznie usuwał zduplikowanych odbiorców przed wysłaniem wiadomości e-mail?
Znalazłem wiele postów od ludzi w całej sieci, którzy mają ten sam problem, ale jeszcze nie znalazłem odpowiedzi. Jeśli nie jest to możliwe w Postfix, czy można to zrobić gdzieś po drodze? Próbowałem edukować moich użytkowników, ale obawiam się, że to raczej bezcelowe ...
Korzystam z Postfiksa na Mac OS X Server 10.6, amavis jest ustawiony jako content_filter, a dovecot jest ustawiony jako mailbox_command. Próbowałem skonfigurować procmaila jako filtr treści dla dostarczania smtp (zgodnie z sugestią poniżej), ale wydaje się, że nie mogę tego poprawnie zrobić. Z różnych powodów nie mogę zastąpić standardowej konfiguracji OS X, co oznacza, że postfix, amavis i dovecot pozostają na swoim miejscu. Mogę jednak dodać, jeśli chcę.
źródło
Odpowiedzi:
Postfix nie ma pojęcia o zduplikowanych wiadomościach e-mail ze względu na strukturę. Możesz zrobić to, co sugerujesz, używając procmaila jako swojego agenta dostawy.
Zasadniczo każda wiadomość pochodząca od klienta powinna być dostarczana z unikalnym identyfikatorem wiadomości. W przypadku, gdy jest dostarczany do wielu osób, identyfikator wiadomości powinien być taki sam, więc zapisujemy wszystkie
Message-Id
nagłówki, które widzieliśmy, i odrzucamy, a także przyszłe, które pasują do tej listy.Od http://novosial.org/procmail/
źródło
content_filter
które pozwoli ci wykonać to samo zadanie na poziomie globalnymJest sposób, jak to zrobić, ale nie używając samego Postfix.
Jeśli używasz stosunkowo niedawnego Dovecot z implementacją Pigeonhole w Sito , istnieje specjalne rozszerzenie, którego można użyć do deduplikacji w momencie dostawy. W Dovecot starszym niż 2.2.18 nazwa tego rozszerzenia to „vnd.dovecot.duplicate” i jest ono domyślnie wyłączone, w nowszych wersjach rozszerzenie nazywa się „duplikatem” i powinno być już włączone, ale włączenie go wyraźnie nie spowoduje zaszkodzić.
/etc/dovecot/conf.d/90-sieve.conf:
Następnie utwórz skrypt sita, aby obsłużyć samą deduplikację (możesz dostosować nazwę pliku według własnego uznania).
/mnt/mail/users/global_sieve/deduplicate.sieve:
Skompiluj skrypt za pomocą sievec i upewnij się, że skrypt jest czytelny dla użytkownika dovecot . Więcej w dokumentach Dovecot.
Jeśli używasz Cyrusa, istnieje funkcja eliminacji dostarczania duplikatów wiadomości, którą można włączyć za pomocą
suppress_duplicates = yes
.źródło
duplicate
rozszerzenie działa na poziomie użytkownika. Próbowałem zatrzymać duplikaty dla wielu użytkowników To / Cc-d w centralnejfileinto
skrzynce pocztowej. To nie działa Musiałem również ustawić postvirtual_alias_maps
- fix catch-all wpis, taki jak@domain.com [email protected]
, wtedy sprawdzenie duplikatu sita traficatchall
na listę duplikatów użytkownika.Rozwiązanie, które jest dla mnie praca dodatek
-o receive_override_options=no_address_mappings
namaster.cf
Tutaj dokument: http://www.postfix.org/postconf.5.html#receive_override_options
źródło
To jest z jakiegoś starego postfix faq:
Postfix wysyła zduplikowane wiadomości Niektóre osoby narzekają, że Postfix wysyła zduplikowane wiadomości. Dzieje się tak, gdy jedna wiadomość jest wysyłana na wiele adresów, które docierają do tego samego użytkownika. Przykładami takich scenariuszy są:
Więc z założenia widzisz to zachowanie. Być może, jeśli znajdziesz filtr treści, który może usunąć zduplikowane identyfikatory wiadomości, możesz to wyeliminować po zdarzeniu dostarczenia.
Sendmail nie ma tego problemu, ponieważ najpierw rozwija wszystko i usuwa duplikaty.
źródło
Oficjalne rozwiązanie jest tutaj .. http://osdir.com/ml/mail.postfix.devel/2007-05/msg00010.html
duplicate_filter_limit (10000) Maksymalna liczba adresów zapamiętanych przez adresatów duplikatów filtrów dla aliasów (5) lub rozszerzania aliasu wirtualnego (5), lub dla wyświetlania kolejki showq (8) (we wcześniejszych wersjach Postfix domyślny limit to 1000).
duplicate_filter_style (strict) Polityka duplikatów filtrów adresatów: ścisła lub pragmatyczna.
źródło
Umieściłem to w main.cf i działało dobrze, ale tylko dla poczty wysyłanej z mojej domeny. Nadal mam duplikaty, jeśli wysyłam e-mail spoza mojej domeny (np. Yahoo do mojej domeny)
źródło: http://article.gmane.org/gmane.mail.postfix.user/119783
źródło