acl_mail_from

# 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