Postfix takma adları ve yinelenen e-postalar, nasıl düzeltilir?


18

Postfix, aşağıdaki gibi ayarlanmış takma adlar var:

all@mydomain.com:    foo@mydomain.com, bar@mydomain.com ...

All@alan_adim.com.tr adresine bir e-posta gönderildiğinde ve bu takma addaki alıcılardan herhangi biri oldukça yaygın olan cc: ed olduğunda (yani: "Tümünü yanıtla"), e-posta iki kopya halinde teslim edilir. Örneğin, all@alanadim.com adresine bir e-posta gönderilirse ve foo@alanadim.com cc: ed ise, iki kez teslim edilir. Göre Postfix SSS Postfix hızlı sendmail daha yapar grupları, genişleyen olmadan paralel olarak e-posta gönderir gibi bu tasarım gereğidir. Şimdi hepsi iyi ve züppe ama Postfix'i e-postayı göndermeden önce yinelenen alıcıları kaldıracak şekilde yapılandırmak mümkün mü?

Tüm ağdaki insanların aynı sorunu olan bir sürü gönderi buldum, ancak henüz bir cevap bulamadım. Postfix'de bu mümkün değilse, yolda bir yerde yapmak mümkün mü? Kullanıcılarımı eğitmeyi denedim, ama korkuyorum ki boşuna ...

Mac OS X Server 10.6'da postfix çalıştırıyorum, amavis content_filter ve dovecot mailbox_command olarak ayarlandı. (Aşağıdaki öneri göre) smtp teslimat için bir content_filter olarak procmail kurma denedim, ama doğru almak gibi olamaz. Çeşitli nedenlerle, postfix, amavis ve dovecot koymak gibi standart OS X yapılandırmasını değiştiremiyorum. Ancak isterseniz ekleyebilirim.


Bence bu gerçekten mümkün değil ...
Antoine Benkemoun

Gerçekten doğru olduğuna inanmaya başlıyorum Antoine.
Marcus Stade

Bu bir lütuf kaybıydı ...
Marcus Stade

2
bunun için bir çözüm buldunuz mu? Aynı sorunu yaşıyorum.
Tommy Arnold

Yanıtlar:


4

Postfix'in yapılandırılma biçimi nedeniyle yinelenen e-postalar hakkında hiçbir fikri yoktur. Procmail'i dağıtım acenteniz olarak kullanarak önerdiğiniz şeyi yapmak mümkündür.

Temel olarak, bir istemciden gelen her iletinin benzersiz bir İleti Kimliği ile teslim edilmesi gerekir. Birden fazla kişiye teslim edilmesi durumunda, Mesaj Kimliği aynı olmalıdır, bu nedenle Message-Idgördüğümüz ve attığımız tüm başlıkları ve bu listeyle eşleşen gelecekteki bilgileri kaydederiz.

Gönderen http://novosial.org/procmail/

:0 Wh: msgid.lock
| formail -D 8192 ~/.procmail/msgid.cache

Sorunu doğru anlarsam Postfix'te çözmek mümkün değildir, çünkü Postfix e-postaları paralel olarak gönderir, yani all@alanadim.com'u genişlettikçe aynı zamanda foo@alanadim.com adresine gönderir ve sonra tekrar foo@alanadim.com adresine gönderir. Procmail çözümü, söz konusu iki e-posta arasında başka bir ilgisiz e-postanın (farklı bir mesaj kimliğine) gönderildiği ve böylece önbelleğin üzerine yazarak, yinelenen e-postaların nasıl olsa teslim?
Marcus Stade

Önerinizi işe almaya çalışıyorum, ancak bunu varsayılan olarak OS X 10.5+ tarafından kullanılan dovecot teslimatıyla nasıl birleştireceğinizden emin değilim.
Marcus Stade

Dovecot'u bir dağıtım aracısı olarak kullanıyorsanız, procmail'i content_filteraynı görevi küresel düzeyde gerçekleştirmenize izin verecek şekilde kullanabilirsiniz
Philip Reynolds

İtiraf etmeliyim ki, muhtemelen burada başımın üstündeyim. Parmaklarım kanayana kadar postfix ve googling için yapılandırma parametreleri sayfasında kendime kör bakıyordum ama bunu nasıl yapılandıracağımı anlayamıyorum. Bildiğiniz veya doğru yönde ilerleyebileceğiniz kaynaklar gerçekten takdir edilecektir!
Marcus Stade

Sanırım şimdi nasıl çalıştığını anlıyorum, ama zaten bir içerik_filter amavis için ayarlanmış. Bu bir tür antivirüs denetleyicisi gibi görünüyor. Content_filters'ı zincirlemenin mümkün olduğunu okudum, ancak oldukça sezgisel görünmüyor ve dokümantasyon yıldızdan daha az. Yinelenen e-postaları ayıklamanın ne kadar zor olduğunu görmek gerçekten çok saçma. Tasarım kararları ne olursa olsun, bu kutudan çıkmış gibi olmalı ya da en azından bu monstruos hack'lerini gerektirmiyor gibi görünüyor.
Marcus Stade

3

Bunu yapmanın bir yolu var, ancak Postfix'in kendisini kullanmıyor.

Sieve'nin Pigeonhole uygulamasıyla oldukça yeni bir Dovecot kullanıyorsanız , teslimatta tekilleştirme için kullanılabilecek özel bir uzantı var. 2.2.18'den eski Dovecot'ta , bu uzantının adı "vnd.dovecot.duplicate" dir ve varsayılan olarak devre dışıdır, yeni sürümlerde uzantıya "yinelenen" denir ve zaten etkinleştirilmelidir, ancak açıkça etkinleştirilmesi gerekmez zarar.

/etc/dovecot/conf.d/90-sieve.conf:

plugin {
  sieve = ~/.dovecot.sieve
  sieve_dir = ~/sieve

  sieve_before = /mnt/mail/users/global_sieve/deduplicate.sieve
  # sieve_before2 = /mnt/mail/users/global_sieve/antispam.sieve

  sieve_extensions = +vnd.dovecot.duplicate  # for dovecot < 2.2.18
  #sieve_extensions = +duplicate             # for dovecot >= 2.2.18
}

Ardından tekilleştirmenin kendisini işlemek için elek komut dosyasını oluşturun (dosya adını uygun gördüğünüz şekilde ayarlayabilirsiniz).

/mnt/mail/users/global_sieve/deduplicate.sieve:

require "vnd.dovecot.duplicate"; # for dovecot < 2.2.18
# require "duplicate";           # for dovecot >= 2.2.18

if duplicate {
    discard;
    stop;
}

Kullanarak komut dosyasını derlemek sievec ve emin senaryo okuyabileceği hale dovecot kullanıcı. Dovecot dokümanlarında daha fazlası.

Cyrus kullanıyorsanız, kullanılarak etkinleştirilebilen bir yinelenen ileti teslimi bastırma özelliği vardır suppress_duplicates = yes.


Bu mekanizmayı işaret ettiğin için bir ton teşekkürler. "Samanlıkta iğne bulmak" hissi.
lkraav

Uygulama sırasında keşifler: duplicateuzantı kullanıcı düzeyinde çalışır. Merkezi bir fileintoposta kutusunda birden çok kullanıcı To / Cc-d yinelenen durdurmaya çalışıyordu . Bu işe yaramıyor. Ayrıca elek yinelenen çek, kullanıcının yinelenen listesini vuracak virtual_alias_mapsgibi bir postfix catch-all girdisi ayarlamak zorunda kaldı . @domain.com catchall@domain.comcatchall
lkraav

Evet, bu "samanlıkta iğne bulma" hissine çok benziyor
Net Runner


0

Bu bazı eski postfix SSS'den:

Postfix yinelenen posta gönderir Bazı insanlar Postfix'in yinelenen mesajlar gönderdiğinden şikayet eder. Bu, bir ileti aynı kullanıcıya ulaşan birden çok adrese postalandığında olur. Bu tür senaryolara örnekler:

  • Bir mesaj kullanıcıya ve kullanıcıyı listeleyen bir takma ada gönderilir. Kullanıcı, postanın bir kopyasını doğrudan ve bir kopyasını takma ad yoluyla alır.

    • Bir mesaj kullanıcıyı listeleyen birden fazla takma ada gönderilir. Kullanıcı, her diğer ad yoluyla postanın bir kopyasını alır.

Bazı insanlar bunun "doğru" davranış olduğunu bile iddia edeceklerdir. Muhtemelen daha çok bir beklenti ve alışkın olduğumuz şeydir.

Bu yalnızca Postfix'i yavaşlatarak "düzeltilebilir". Yukarıdaki örneklerde, Postfix'in herhangi bir teslimata başlamadan önce tüm dağıtım listelerini tamamen genişletmesi gerekir. Tasarım gereği, Postfix postaları farklı hedeflere paralel olarak iletir ve yerel teslimat bir istisna değildir. Postfix'in sendmail'den daha hızlı olmasının nedeni budur.

Tasarım gereği bu davranışı görüyorsunuz. Belki de yinelenen mesaj kimliklerini çıkarabilecek bir içerik filtresi bulursanız, bunu dağıtım olayından sonra ortadan kaldırabilirsiniz.

Sendmail'de bu sorun yoktur, çünkü önce her şeyi genişletir ve kopyaları çıkarır.


Evet, okudum, belki de sorumu güncellemeliydim. Tasarım ya da değil, hala bir sorun. Neden böyle davrandığını anlıyorum ve Postfix'te bir çözüm bulmanın boşuna olduğunu anlıyorum. Ancak, Procmail kullanarak bazı içerik filtresi çözümü bulmaya çalıştım ve bunu doğru anlayamıyorum. İçerik filtrelerini veya procmail'i veya her ikisini birden doğru anlamıyorum. Her iki durumda da hala bunu düzeltmek istiyorum. Ne yazık ki, kurulum değiştirilemez, sadece eklenir. Ne yazık ki postfix yerine sendmail kullanamıyorum.
Marcus Stade

Soruyu biraz daha bilgi ile güncelledim ama dürüst olmak gerekirse, SSS bağlantısının başlaması için oradaydı. Gerçi herhangi bir yararlı öneri için teşekkür ederiz!
Marcus Stade

Bunun aynı içeriğe bir bağlantı olduğunu fark etmedim. BT güvenliğinde çalışırken, rastgele bağlantıları tıklamak konusunda oldukça paranoyak hale gelirsiniz. Yinelenen iletilerin aynı ileti kimliklerine sahip olduğunu doğrulayabilir misiniz?
jeffatrackaid

Uzun bir gün oldu, bu yüzden orijinal yazınızı gözden geçirmem
jeffatrackaid

Yinelenen iletilerin aynı ileti kimliklerine sahip olduğunu doğrulayabilirim. Duplicate_filter_limit öğesinin ayarlanması maalesef yardımcı olacak hiçbir şey yapmaz.
Marcus Stade

0

Resmi çözüm burada .. http://osdir.com/ml/mail.postfix.devel/2007-05/msg00010.html

duplicate_filter_limit (10000) Diğer adlar (5) veya sanal (5) diğer ad genişletme veya showq (8) kuyruk ekranları için alıcı tarafından hatırlanan maksimum adres sayısı (varsayılan Postfix sürümlerinde varsayılan sınır 1000'di).

duplicate_filter_style (katı) Yinelenen alıcı filtresi politikası: katı veya pragmatik.


1
Bu bir şey yapmıyor ...
grufftech

postfix.1071664.n5.nabble.com/… bunun asla uygulanmadığını iddia ediyor
Yanko Hernández Álvarez

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.