İmleme Sınama ACL'si

Bu şemanın son parçası, Exim'e imli olarak geçerli alıcı adreslere gelen teslimatların daima kabul edileceğini ve boş gönderici adresli diğer teslimatların ise eğer alıcı bu şemayı seçmişse reddedileceğini belirtmektir. Böyle durumlarda grilisteleme yapılmamalıdır.

Aşağıdaki satırları acl_rcpt_to ACL'sinde olası bir SPF, grilisteleme ve/veya sonuncu accept deyiminin öncesine yerleştirin:

  # Kendine özgü imlemesini içeriyorsa, alıcı adresini kabul ediyoruz.
  # Bu, teslimatın, daha önce bizden gönderilmiş bir postanın teslimat
  # durum bildirimi olduğunu gösterir.
  #
  accept
    domains     = +local_domains
    condition   = ${if and {{match{${lc:$local_part}}{^(.*)=(.*)}}\
                            {eq{${hash_8:${hmac{md5}{SECRET}{$1}}}}{$2}}}\
                           {true}{false}}

  # Aksi takdirde, posta boş gönderici adresli ise ama alıcı, imlemeli zarf
  # gönderici adresi şemasını seçenlerden biri ise postayı reddediyoruz.
  #
  deny
    message     = This address does not match a valid, signed \
                  return path from here.\n\
                  You are responding to a forged sender address.
    log_message = bogus bounce.
    senders     = : postmaster@*
    domains     = +local_domains
    set acl_m9  = /home/${extract{1}{=}{${lc:$local_part}}}/.return-path-sign
    condition   = ${if exists {$acl_m9}{true}}

Postayı gönderirken iletinin başlığındaki adreslere (örneğin, gönderdiğiniz postanın From: alanındaki adrese) varlık doğrulaması yapan konakların varlığını bu noktada dikkate almak gerekir. Buradaki deny deyimi normal olarak böyle bir doğrulatma çabasına olumsuz yanıt verecektir.

Bunun olmaması için, deny deyimini warn deyimi haline getirmek, red iletisini $acl_m0 değişkeninde saklayıp asıl reddi DATA komutundan sonra yapmak isteyebilirsiniz:

  # Aksi takdirde, posta boş gönderici adresli ise ama alıcı, imlemeli zarf
  # gönderici adresi şemasını seçenlerden biri ise, red iletisini $acl_m0
  # ve günlük iletisini $acl_m1 değişkenine kaydedip, bunları daha sonra
  # postayı reddederken kullanacağız. Red sırasında göndericinin oyalanıp
  # oyalanmayacağına bunların varlığına bakarak karar vereceğiz.
  #
  warn
    senders     = : postmaster@*
    domains     = +local_domains
    set acl_m9  = /home/${extract{1}{=}{${lc:$local_part}}}/.return-path-sign
    condition   = ${if exists {$acl_m9}{true}}
    set acl_m0  = The recipient address <$local_part@$domain> does not \
                  match a valid, signed return path from here.\n\
                  You are responding to a forged sender address.
    set acl_m1  = bogus bounce for <$local_part@$domain>.

Ayrıca, alıcı giden postasında imlemeli zarf gönderici adresi kullanmayı seçmiş bile olsa, bazı konaklardan gelen postaların zarf gönderici adresi boş olsa bile sınama dışı tutulmasını isteyebilir. Bilhassa eposta listelerinin sunucuları buna en iyi örnektir, bu konuda daha ayrıntılı bilgi için Zarf Gönderici İmleri bölümüne bakınız.