Re: [exim] Exim 4.60 & SpamAssassin 3.1.0 Problems

Top Page
Delete this message
Reply to this message
Author: George R Kasica
Date:  
To: exim-users
Subject: Re: [exim] Exim 4.60 & SpamAssassin 3.1.0 Problems
>From: exim-users-bounces@??? [mailto:exim-users-bounces@exim.org] On
>Behalf Of Tim Jackson
>Sent: Wednesday, January 11, 2006 5:16 AM
>To: exim-users@???
>Subject: Re: [exim] Exim 4.60 & SpamAssassin 3.1.0 Problems
>
>> I think you need to show us relevant bits of your Exim config (or the
>whole config if it's not too big, with comments
>> stripped if you're posting it to the list.)

Here you go (all comment lines stripped via grep -v '#':

domainlist local_domains = dbm;/usr/local/exim/etc/local-domains.db

domainlist relay_to_domains =

hostlist relay_from_hosts = 127.0.0.1 : \
    68.248.203.41 : \
    68.248.203.42 : \
    68.248.203.43 : \
    68.248.203.44 : \
    68.248.203.45 : \
    68.248.203.46 : \
    192.168.1.1 : \
    192.168.1.2 : \
    192.168.1.3 : \
    192.168.1.4 : \
    192.168.1.5 : \
    192.168.1.7 : \
    192.168.1.254 : \
    lsearch;/usr/local/exim/popw/lib/popauth


acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_contents
acl_smtp_mime = acl_check_mime

av_scanner = sophie:/var/run/sophie

spamd_address = 127.0.0.1 783

allow_domain_literals = false

never_users = root

host_lookup = *

daemon_smtp_port = 25

helo_accept_junk_hosts = *

message_size_limit = 500M
bounce_return_size_limit = 100K

no_split_spool_directory

remote_max_parallel = 40

delay_warning = 4h:8h:24h
delay_warning_condition = \
    ${if match {$h_precedence:}\
      {(?i)bulk|list|junk} {no} {yes}}


gecos_pattern = "([^,]*)"
gecos_name = $1
system_filter = /usr/local/exim/etc/exim.sysfilter

trusted_users = "root : majordom"

begin acl

acl_check_rcpt:
accept hosts = :

  deny    local_parts   = ^.*[@%!/|] : ^\\.


  accept  local_parts   = postmaster
          domains       = +local_domains


  require verify        = sender


  accept  domains       = +local_domains
          endpass
          message       = unknown user
          verify        = recipient


  accept  domains       = +relay_to_domains
          endpass
          message       = unrouteable address
          verify        = recipient


  accept  hosts         = +relay_from_hosts


  deny    message       = relay not permitted


acl_check_mime:

warn    decode = default


deny    set acl_m1 = ${extract{-1}{.}{${lc:$mime_filename}}}
        message = Banned extension $acl_m1 
        condition = ${if match{$acl_m1} \
         {\N^(ade|adpx|app|bas|bat|chm|cmd|com|cpl|crt|\
                  exe|fxp|hlp|hta|inf|ins|isp|js|jse|lnk|\
                  mda|mdb|mde|mdt|mdw|mdz|msc|msi|msp|mst|\
                  ops|pcd|pif|prf|prg|reg|scf|scr|sct|shb|shs|\
                  url|vb|vbe|vbs|wsc|wsf|wsh|xsl)$\N}{1}{0}}


deny    condition = ${if match{$mime_filename} \
        {\N\{[a-hA-H0-9-]{25,}\}\N}{1}{0}}
        message = CLSID banned $mime_filename


deny    condition = ${if match{$mime_filename} {\N\s{10,}\N}{1}{0}}
        message = too many spaces $mime_filename



deny    condition = $mime_is_multipart
        condition = ${if eq{$mime_boundary}{}{yes}{no}}
        message = Emtpy MIME Boundary 


accept

acl_check_contents:


deny message = ($acl_m1) $malware_name
        malware = *
        condition = ${if eq
{${substr_0_5:$malware_name}}{Error}{1}{0}}



 deny  message = VIRUS FOUND ($malware_name) 
        malware = *



  warn  message = X-Spam-Score: $spam_score ($spam_bar)
        spam = nobody:true
  warn  message = X-Spam-Report: $spam_report
     condition = ${if >{$spam_score_int}{0}{1}{0}}



   warn message = X-Spam-Flag: YES
       condition = ${if >{$spam_score_int}{49}{1}{0}}


  warn message = X-Spam-Flag: NO
        condition = ${if <{$spam_score_int}{50}{1}{0}}


accept

begin routers

dnslookup:
driver = dnslookup
domains = ! +local_domains
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
no_more

sort_out_case:
driver = redirect
allow_defer
allow_fail
caseful_local_part
data = \

${lookup{${lc:$local_part}}lsearch{/usr/local/exim/etc/usercase.db}{$value@$domain}fail}
retry_use_local_part

virtual_aliases:
driver = redirect
allow_defer
allow_fail
caseful_local_part
data =
${lookup{$local_part@$domain}dbm*@{/usr/local/exim/etc/virtual-aliases.db}}
file_transport = address_file
pipe_transport = address_pipe
retry_use_local_part


system_aliases:
driver = redirect
allow_defer
allow_fail
caseful_local_part
data = ${lookup{$local_part}dbm{/usr/local/exim/etc/aliases.db}}
file_transport = address_file
pipe_transport = address_pipe
retry_use_local_part


majordomo_aliases:
driver = redirect
allow_defer
allow_fail
caseful_local_part
data =
${lookup{$local_part}dbm{/usr/local/exim/etc/majordomo-aliases.db}}
file_transport = address_file
group = majordom
pipe_transport = address_pipe
retry_use_local_part
user = majordom

majordomo_private_aliases:
  driver = redirect
  allow_defer
  allow_fail
  caseful_local_part
  condition = "${if eq {$received_protocol}{local} \
               {${if eq {$sender_ident}{majordom} \
               {true}{false}}}{false}}"
  data =
${lookup{$local_part}dbm{/usr/local/exim/etc/majordomo-private-aliases.db}}
  file_transport = address_file
  group = mail
  pipe_transport = address_pipe
  retry_use_local_part
  user = majordom






userforward:
driver = redirect
caseful_local_part
check_ancestor
check_local_user
no_expn
file = $home/.forward
file_transport = address_file
pipe_transport = address_pipe
reply_transport = address_reply
no_verify

procmail:
driver = accept
caseful_local_part
check_local_user
require_files = /usr/bin/procmail
transport = procmail





localuser:
driver = accept
caseful_local_part
check_local_user
transport = local_delivery




begin transports



remote_smtp:
driver = smtp




procmail:
driver = pipe
command = "/usr/bin/procmail -d ${local_part}"

local_delivery:
driver = appendfile
delivery_date_add
envelope_to_add
file = /var/spool/mail/${local_part}
group = mail
mode = 0660
return_path_add





address_pipe:
driver = pipe
return_output



address_file:
driver = appendfile
delivery_date_add
envelope_to_add
return_path_add




address_reply:
driver = autoreply




begin retry

*                      *           F,2h,15m; G,16h,1h,1.5; F,4d,8h



begin rewrite
*@eagle.netwrx1.com
${lookup{$1}dbm{/usr/local/exim/etc/reverse-virtual-aliases.db}\
                        {$value}fail}


*@eagle.netwrx1.com     $1@???


begin authenticators





>
>> OK, so I'm guessing you're accepting everything, passing the messages to
>SpamAssassin via a router and then reinjecting

No we're using ACLs I believe.

>> into Exim? Do you really end up with the messages in BSMTP format?

Unsure on that one....that is what one of the error messages is.

>> Is there a strong reason why you're doing this as opposed to doing the
>scanning at SMTP time using Exim's built-in
>> Content Scanning Extension?

See above we have an ACL for spanm and virus check

>> 3. as a temporary measure, using "temp_errors = *" on your transport that
>pipes the mail to spamassassin might help to
>> stop the incoming messages actually bouncing and make them stick on your
>queue instead.

Will try that!
===[George R. Kasica]===        +1 262 677 0766
President                       +1 206 374 6482 FAX 
Netwrx Consulting Inc.          Jackson, WI USA 
http://www.netwrx1.com
georgek@???
ICQ #12862186