|
# Bu erişim denetim listesi gelen bir SMTP aktarımında MAIL FROM: # komutu için kullanılır. Bu sınamalar gönderici adresi kabul # ya da red edilinceye kadar sırayla yapılır. # acl_mail_from: # Gecikme uygularken başlangıç olarak kullanmak üzere o anki zaman # bilgisini kaydediyoruz. warn set acl_m2 = $tod_epoch # Posta yerel SMTP üzerinden alınmışsa (yani, TCP/IP bağlantısı # ile gelmiyorsa), kabul ediyoruz. Bunu boş bir konak alanını # sınayarak yapacağız. Ayrıca, postalarını rölelediğimiz # konaklardan gelen postaları da kabul edeceğiz. # # Alıcı doğrulamasını burada atlıyoruz, çünkü çoğu durumda # istemciler kullanıcıların posta istemcileridir ve SMTP # hata iletileri ile ne yapacaklarını bilmezler. # accept hosts = : +relay_from_hosts # İleti, kimlik kanıtlaması yapılan bir bağlantı üzerinden # geliyorsa kabul ediyoruz. Yine, bu iletiler kullanıcıların posta # istemcilerinden geldiklerinden alıcı doğrulaması yapmıyoruz. # accept authenticated = * # Bu SMPT aktarımı sırasında yapılacak her teslimata uygulanacak red # ve/veya uyarı iletileri varsa, bunlar $acl_c0 ve $acl_c1 değişkenlerinde # kayıtlıdır. Bunları iletiye özel değişkenler olan $acl_m{0,1}'a # kopyalayıp, $acl_m1'deki uyarı iletisini ileti başlığına ekleyeceğiz. # (Bir red durumunda, $acl_m1 artık bir günlük kaydı içeriyor olacak, # ama iletiyi bununla değil başlığındaki kayıtla reddedeceğiz.) # warn set acl_m0 = $acl_c0 set acl_m1 = $acl_c1 message = $acl_c1 # Gönderici bir HELO/EHLO selamlaşması yapmamışsa, $acl_m0'e bir red, # ve $acl_m1'e bir günlük iletisi kaydedeceğiz. Bunları sonra bir # "deny" deyiminde kullanacağız ve bu sırada göndericiyi 20 saniye # bekleteceğiz. # warn condition = ${if def:sender_helo_name {0}{1}} set acl_m0 = Message was delivered by ratware set acl_m1 = remote host did not present HELO/EHLO greeting. # Gönderici adresi doğrulanamazsa, $acl_m1'e bir uyarı iletisi # kaydedeceğiz ve bunu ileti başlığına ekleyeceğiz. # Varlığı bize geciktirme uygulayacağımızı belirtecek. # # "callout" seçeneğini isterseniz silebilirsiniz. Özellikle, postanızı # doğrudan değil de göstermelik sunucu (smarthost) olarak # gönderiyorsanız, bu seçenek anlamsız olacaktır. # warn condition = ${if !def:acl_m1 {true}{false}} !verify = sender/callout set acl_m1 = Invalid sender <$sender_address> message = X-Sender-Verify-Failed: $acl_m1 log_message = $acl_m1 # Göndericiyi kabul ediyoruz, fakat $acl_c1'de evvelce kaydedilmiş # bir ileti varsa, göndericiyi 20 saniye dolana kadar bekletiyoruz. accept set acl_m2 = ${if def:acl_c1 {${eval:20 + $acl_m2 - $tod_epoch}}{0}} delay = ${if >{$acl_m2}{0}{$acl_m2}{0}}s
|