# 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