Hello, 

Michael L Griffin writes: 

>   I often receive email that is a few days / months / years "old"
> according to the email date 99.99% of which is SPAM. 
> 
>   Now a thought, what would the benefit/negative be in denying
> incoming email "older" than say 7 days?  I was thinking that denying
> at connection time would alleviate load on SpamAssasin (my resources
> are limited on a VPS). 
> 
>   Any ideas on how best to do this? Pointers / examples greatly
> appreciated as always.

The following will do exactly what you are seeking. 

First the bash script: 

 ---[ Start: CheckDate ] ----
#!/bin/sh
#
# Check message age
#
# $1 - message date
# $2 - Max past age accepted
# $3 - Max future age accepted 

export PATH=/bin:/usr/bin:/usr/local/bin 

# Date/time of Message 

D=`date -d "$1" +"%s"` 

# Current Data/time 

N=`date +"%s"` 

# Elapsed time, negative number a future dates 

let E=$N-$D 

# Age of message in days, negative numbers are future 

let A=$E/86400 

if [ $A -lt 0 ] ; then
  let A=A*-1
  if [ $A -gt $3 ] ; then
    exit 2
  fi
fi 

if [ $A -gt $2 ] ; then
  exit 1
fi 

exit 0
 --- [ End: CheckDate ] --- 

Save this file in the /usr/exim folder as: CheckDate
Then make it executable. 

Now for the Exim conf lines: 

acl_check_data:
  deny    condition     = ${if or 
{{!def:h_Date:}{!def:h_Subject:}{!def:h_To:}}{yes}{no}}
          message       = Message does not conform to RFC2822 standard

  deny    set acl_m8    = ${run{/usr/exim/CheckDate "$h_date:" 30 3}}
          condition     = ${if eq {$runrc}{1}{yes}{no}}
          message       = Message too out of date

  deny    condition     = ${if eq {$runrc}{2}{yes}{no}}
          message       = Message from the future 


The conditions are one line only, wrapped by email client.  This says to 
deny any massage older then 30 days or any message 3 or more days in the 
future.  The numbers can be changed as desired.  They are in DAYS referenced 
from "today". 

 --- 

DynaStop: Stopping spam one dynamic IP address at a time.
http://tanaya.net/DynaStop/

-- 
## List details at http://lists.exim.org/mailman/listinfo/exim-users 
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/

Reply via email to