acl_helo

# Bu erişim denetim listesi gelen bir SMTP aktarımında HELO veya EHLO
# komutları için kullanılır. Bu sınamalar selamlaşma kabul ya da
# red edilinceye kadar sırayla yapılır.


acl_helo:
  # 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.
  #
  accept
    hosts       = : +relay_from_hosts


  # Bağlanan konak selamlaşma sırasında bir IP adresi belirtmişse, $acl_c0'a
  # bir red iletisi ve $acl_c1'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 isip {$sender_helo_name}{true}{false}}
    set acl_c0  = Message was delivered by ratware
    set acl_c1  = remote host used IP address in HELO/EHLO greeting


  # Bağlanan konak selamlaşma sırasında bizim isimlerimizden birini
  # belirtmişse aynı işleme tabi tutuyoruz.
  #
  warn
    condition   = ${if match_domain{$sender_helo_name}\
                   {$primary_hostname:+local_domains:+relay_to_domains}\
                   {true}{false}}
    set acl_c0  = Message was delivered by ratware
    set acl_c1  = remote host used our name in HELO/EHLO greeting.


  # HELO doğrulaması başarısız olmuşsa, acl_c1'e bir uyarı iletisi
  # kaydediyoruz. Bu iletiyi daha sonra posta başlığına ekleyeceğiz.
  # Varlığı bize geciktirme uygulayacağımızı belirtecek.
  #
  warn
    condition   = ${if !def:acl_c1 {true}{false}}
    !verify     = helo
    set acl_c1  = X-HELO-Warning: Remote host $sender_host_address \
                  ${if def:sender_host_name {($sender_host_name) }}\
                  incorrectly presented itself as $sender_helo_name
    log_message = remote host presented unverifiable HELO/EHLO greeting.


  # Selamlaşmayı 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