SpamAssassin'in Exiscan üzerinden çağrılması

Exiscan-ACL'nin “spam” kuralı hem SpamAssassin hem de Brightmail'i kullanabilir ve ileti bir döküntüyse bu kural bunu belirtecek şekilde tetiklenir. Exim öntanımlı olarak, localhost üzerinde çalışan bir SpamAssassin artalan sürecine (spamd) bağlanır. Ancak konak adresi ve port, Exim yapılandırma dosyasının ana bölümüne bir spamd_address ataması ile belirtilerek başka bir konaktaki SpamAssassin'in kullanılması sağlanabilir. Daha ayrıntılı bilgi için bu yamayla birlikte gelen exiscan-acl-spect.txt dosyasına bakınız.

Bizim gerçeklenimimizde, spam olarak tasnif edilmiş iletileri reddedeceğiz. Bununla birlikte, bu tür iletilerin bir kopyasını, kullanıcı arasıra Hatalı Olumlamalar için bu dizini tarayabilsin diye, bir süreliğine ayrı bir posta dizininde tutacağız.

Exim, kabul edilen bir iletiye freeze adı verilen bazı denetimler uygulayabilir. Exiscan-ACL yaması bu denetimlere, fakereject ismiyle başka denetimler ekler. Bu şöyle bir SMTP yanıtına sebep olur:

550-FAKEREJECT id=ileti-kimliği
550-İletiniz reddedildi ancak değerlendirilmek üzere tutuluyor.
550 Eğer meşru bir iletiyse, hala alıcılarına teslim edilebilir.

Bu özelliği kendi gerçeklenimimize aşağıdaki satırları acl_data içinde sonuncu accept deyiminden önceye yerleştirerek kullanacağız:

  # $spam_score ve $spam_report'a veri sağlamak için SpamAssassin'i
  # çağıracağız. Tasnife bağlı olarak, $acl_m9 "ham" veya "spam"
  # değerini alacak.
  #
  # İleti spam olarak tasnif edilmişse, reddetmiş gibi yapacağız.
  #
  warn
    set acl_m9  = ham
    spam        = mail
    set acl_m9  = spam
    control     = fakereject
    logwrite    = :reject: Rejected spam (score $spam_score): $spam_report

  # İletinin başlığına bir X-Spam-Status: satırı ekleyelim.
  #
  warn
    message     = X-Spam-Status: \
                  ${if eq {$acl_m9}{spam}{Yes}{No}} (score $spam_score)\
                  ${if def:spam_report {: $spam_report}}
    logwrite    = :main: Classified as $acl_m9 (score $spam_score)

Bu örnekte, $acl_m9 değişkeni “ham” değeriyle ilklendirildi. SpamAssassin mail kullanıcısı olarak çağrıldı. Eğer ileti spam olarak tasnif edilmişse, $acl_m9'a “spam” değeri atanıp, yukarıdaki FAKEREJECT yanıtı verildi. Bunu yapmada ana fikir, Posta Teslimatçısının veya alıcının Posta İstemcisinin bu başlığı kullanarak döküntü postayı ayrı bir dizinde toplayabilmesine imkan sağlamaktır.