Thursday, April 28, 2011, 1:19:11 AM, you wrote:
> Troy Piggins wrote:
>> Wondering how you're solving this for emails sent with Date: headers
>> way in the past or future. What do you think is a reasonably
>> acceptable in terms of dates. 3 days each side of the "correct"
>> date? 3 months? Years?
>>
>> How do you keep the header_checks updated as time goes by? I was
>> thinking a cron script that modifies the header_checks file, but
>> that may be a bit clumsy?
> /^Date: .* (19[0-9][0-9]|200[0-9]|2010)/ REJECT Your email is stuck in a
> timewarp
> Works for me. I find that bad date are usually years out. The
> three that were rejected in the past 24 hours were from 1980
> and two from Apr 2010.
I've also been using these now for close to five years without any
complaints. I did at first use WARN instead of REJECT to monitor the
results. Each line after the commented line should be on one line.
# Invalid time in date header
/^Date:.*(2[4-9]:[0-9]{2}:[0-9]{2}|[3-9][0-9]:[0-9]{2}:[0-9]{2}|[0-9]{1,2}:[6-9][0-9]:[0-9]{2}|[0-9]{1,2}:[0-9]{2}:(6[2-9]|[7-9][0-9]))/
REJECT invalid time in date header
# Invalid time zone offset in date header
/ \d\d:\d\d:\d\d [^+-][2-9][5-9][0-9][0-9]\s*$/ REJECT invalid time
zone offset in date header
# Invalid date in date header
/^Date:.*((3[2-9]|[4-9][0-9]) Jan|[3-9][0-9]
Feb|(3[2-9]|[4-9][0-9])Mar|(3[1-9]|[4-9][0-9]) Apr|(3[2-9]|[4-9][0-9])
May|(3[1-9]|[4-9][0-9]) Jun|(3[2-9]|[4-9][0-9])
Jul|(3[2-9]|[4-9][0-9])Aug|(3[1-9]|[4-9][0-9]) Sep|(3[2-9]|[4-9][0-9])
Oct|(3[1-9]|[4-9][0-9]) Nov|(3[2-9]|[4-9][0-9]) Dec)/ REJECT invalid date in
date header