home *** CD-ROM | disk | FTP | other *** search
/ linuxmafia.com 2016 / linuxmafia.com.tar / linuxmafia.com / exim4 / C047.txt < prev    next >
Internet Message Format  |  2004-08-07  |  2KB

  1. From: Oliver Egginger <Oliver.Egginger@dvz.fh-giessen.de>
  2. Date: 21 May 2003 10:11:16 +0200
  3.  
  4. Hi there,
  5.  
  6. download the spamassassin package. See
  7. http://au.spamassassin.org/downloads.html
  8.  
  9. Define a router in your Exim configuration file.
  10. For Exim 4 it could look like this:
  11.  
  12. # Spam Assassin
  13. spamcheck_router:
  14.   no_verify
  15.   check_local_user
  16.   # When to scan a message :
  17.   #   -   it isn't already flagged as spam
  18.   #   -   it isn't already scanned
  19.   #   -   comes from ABC.DEF.GHI.JKL or MNO.PQR.STU.VWX
  20.   #   -   .spamcheck exists for this user
  21.   condition = \
  22.   "${if and { {!def:h_X-Spam-Flag:} \
  23.               {!eq {$received_protocol}{spam-scanned}} \
  24.               {or { {eq {$sender_host_address}{ABC.DEF.GHI.JKL}} \
  25.                     {eq {$sender_host_address}{MNO.PQR.STU.VWX}} \
  26.                   }\
  27.               }\
  28.             }\
  29.             {1}{0}\
  30.     }"
  31.   require_files = $home/.spamcheck
  32.   driver = accept
  33.   transport = spamcheck
  34.  
  35.  
  36. This router has two advantages (for us):
  37.  
  38. 1. You can define the sender host addresses from which you will scan the spam.
  39. In my example there are ABC.DEF.GHI.JKL and MNO.PQR.STU.VWX (you have to
  40. substiute this by your real IP-Adresses).
  41.  
  42. 2. The spamcheck router only runs in dependency of the existence of the
  43. .spamcheck file. So your users can decide whether or not they wont to use 
  44. Spamassassin. Thats important for protection of privacy in germany.
  45.  
  46. If you don't need this you can simplify the router, for example:
  47.  
  48. # Spam Assassin
  49. spamcheck_router:
  50.   no_verify
  51.   check_local_user
  52.   # When to scan a message :
  53.   #   -   it isn't already flagged as spam
  54.   #   -   it isn't already scanned
  55.   condition = \
  56.   "${if and { {!def:h_X-Spam-Flag:} \
  57.               {!eq {$received_protocol}{spam-scanned}} \
  58.             }\
  59.             {1}{0}\
  60.     }"
  61.   driver = accept
  62.   transport = spamcheck
  63.  
  64.  
  65. In the end you will need a spamcheck transport. This one works well for us:
  66.  
  67. # Spam Assassin
  68. spamcheck:
  69.     driver = pipe
  70.     command =  /usr/exim/bin/exim -oMr spam-scanned -bS
  71.     use_bsmtp = true
  72.     transport_filter = /usr/bin/spamc
  73.     home_directory = "/tmp"
  74.     current_directory = "/tmp"
  75.     # must use a privileged user to set $received_protocol on the way
  76.     # back in!
  77.     user = mail
  78.     group = mail
  79.     log_output = true
  80.     return_fail_output = true
  81.     return_path_add = false
  82.     message_prefix =
  83.     message_suffix =
  84.  
  85.  
  86. Put the router and the transport on the right places in your exim conf and send
  87. the daemon a HUP signal. Thats all.
  88.  
  89. - oliver
  90.