Yönlerdirilmiş Postaların Sınama Dışı Tutulması
Önceki A. Exim Gerçeklenimi Sonraki
Yönlerdirilmiş Postaların Sınama Dışı Tutulması
SMTP aktarımına bu sınamaları ekledikten sonra, kendimizi posta listelerinden veya diğer sitelerin posta hesaplarından yönlendirilmiş postaları reddederek dolaylı spam yapar bir halde bulabiliriz (Yönlendirilen Postalar bölümüne bakınız). En azından bizim spam ve/veya virüs filtrelemelerimiz sonucunda gönderdikleri postaların reddedilmemesii için bu konakları aklisteye alabilir ve sınamalarımızın dışında tutabiliriz.
Bu örnekte, her RCPT TO: komutuna yanıt verirken iki dosyaya bakıyoruz:
  • Yedek posta alıcılarını ve diğer aklisteli göndericileri içeren genel amaçlı bir ak liste: /etc/mail/whitelist-hosts
  • Yönlendirimiş posta alıcısı olan kullanıcıların postalarını yönlendiren konakları belirttikleri /home/kullanıcı/.forwarders dosyaları.
Eğer posta kullanıcılarınızın yerel hesapları ve ev dizinleri yoksa, bu dosyaların bulunacağı yolları değiştirebilir ve/veya sisteminize uygun bazı arama mekanizmaların kullanılmasını sağlayabilirsiniz (örn, veritabanı veya LDAP sorguları).
Eğer gönderici konak bu aklistelerden birindeyse, Seçimlik Gecikmeler bölümünde anlatıldığı gibi “accept” sözcüğünü $acl_m0 değişkenine kaydedip $acl_m1 değişkeninin içini boşaltacağız. Böylece bu postanın daha sonraki sınamalarda reddedilmesini önlemiş olacağız.
acl_rcpt_to ACL'sinde alıcı adresini doğruladıktan sonraya ve uzak konaklardan yerel kullanıcılara kimlik kanıtlamasız teslimatlarla ilgili accept deyimlerinin öncesine (varsa grilisteleme ve zarf gönderici imlemesi sınamalarının öncesine) aşağıdaki satırları yerleştireceğiz:
  # Gönderici konak genel akliste içindeyse postayı kabul edeceğiz.
  # Geçici olarak $acl_m9 değişkenine bu dosyayı atayacağız.
  # Konak listedeyse, $acl_m0'a bir değer yerleştirip $acl_m1'i
  # temizleyeceğiz, böylece daha sonra bu postayı reddetmeyeceğiz.
  #
  accept
    set acl_m9  = /etc/mail/whitelist-hosts
    hosts       = ${if exists {$acl_m9}{$acl_m9}}
    set acl_m0  = accept
    set acl_m1  =


  # Gönderici konak alıcının ev dizinindeki ".forwarders" dosyasındaysa
  # postayı kabul edeceğiz. Geçici olarak $acl_m9 değişkenine bu dosyayı
  # atayacağız. Konak listedeyse, $acl_m0'a bir değer yerleştirip $acl_m1'i
  # temizleyeceğiz, böylece daha sonra bu postayı reddetmeyeceğiz.
  #
  accept
    domains     = +local_domains
    set acl_m9  = /home/${extract{1}{=}{${lc:$local_part}}}/.forwarders
    hosts       = ${if exists {$acl_m9}{$acl_m9}}
    set acl_m0  = accept
    set acl_m1  =
acl_data ACL'sinin çeşitli deyimlerinde $acl_m0'ın değerine bakarak eğer yukarıdaki gibi boş bırakılmışsa postayı reddetmeyeceğiz. Örneğin, aklisteli konaklardan gelen bir postanın RFC 2822 başlığının bulunmayışı sebebiyle reddedilmesini önlemek istersek:
  deny
    message     = Your message does not conform to RFC2822 standard
    log_message = missing header lines
    !hosts      = +relay_from_hosts
    !senders    = : postmaster@*
    condition   = ${if !eq {$acl_m0}{accept}{true}}
    condition   = ${if or {{!def:h_Message-ID:}\
                           {!def:h_Date:}\
                           {!def:h_Subject:}} {true}{false}}
Bu ve ilgili diğer sınamalar sonraki Tamamlanmış ACL'ler bölümünde bulunabilir.
Önceki Üst Ana Başlık Sonraki
Boş göndericilerin system_aliases yönlendiricisinde sınanması Başlangıç Tamamlanmış ACL'ler
Bir Linux Kitaplığı Sayfası