[exim] Invalid header lines

Top Page
Delete this message
Reply to this message
Author: Nikolaus Rath
Date:  
To: exim-users
Subject: [exim] Invalid header lines
Hello,

I have the strange problem that for some incoming mails, exim
apparently messes up the header lines:

#v+
[...]
List-Post: <mailto:iub-students@lists.iu-bremen.de>
List-Help: <mailto:iub-students-request@lists.iu-bremen.de?subject=help>
List-Subscribe: <http://lists.iu-bremen.de/mailman/listinfo/iub-students>,
        <mailto:iub-students-request@lists.iu-bremen.de?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1627858707=="
Sender: iub-students-bounces@???
Errors-To: iub-students-bounces@???
X-Spam-Status: No (-1.0 points)
No (-1.0 points)
[...]
#v-


So the value of the spam status header is repeated on its own line.
This causes the delivery to cyrus to fail.

What can be the reason for this? I have the following header related
options in my config:


#v+
acl_check_data:
[...]
  # Check for spam, reject if > 10 points
  deny    message = Rejected spam, visit http://www.rath.org/mail_err for help.
          log_message = Rejected spam

>-------  spam    = nobody:true/defer_ok
>-------  condition = ${if >{$spam_score_int}{100}{1}{0}}


  # Warn if spamd isn't available
  warn    message = X-836-Spam-Status: unknown (spamd not available)
          condition = ${if !def:spam_score}


  # Add spam check results to header
  warn    message = X-836-Spam-Status: Yes ($spam_score points)

>-------  spam    = nobody:true/defer_ok
>-------  condition = ${if >={$spam_score_int}{50}{1}{0}}

  warn    message = X-836-Spam-Status: No ($spam_score points)

>-------  spam    = nobody:true/defer_ok
>-------  condition = ${if <{$spam_score_int}{50}{1}{0}}


accept

[....]
begin transports

[....]
cyrus_delivery:
driver = pipe
command = /usr/local/cyrus/bin/deliver -a $local_part -r $return_path -- $local_part
envelope_to_add
delivery_date_add
return_path_add
user = cyrus
group = mail
message_prefix =
message_suffix =
return_output
log_output
headers_remove = X-Spam-Score:X-Spam-Report:X-Spam-Checker-Version:X-Spam-Status:X-Spam-Le headers_add = X-Spam-Status: $h_x-836-spam-status

[...]
#v-

Or is it possible that the mail is already delivered to exim with the
broken line? If so, why doesn't exim refuse the mail?

Thanks in advance,

--Nikolaus
--
$|++;@_=map{chr(ord($_)-$|)}split//,"Kvtu!bopuifs!Qfsm!Ibdlfs-";$\="\r";@a=qw(
< ^ > v);$§="_"x25;until($§!~m~_~){$o=int(rand 28)+65;next if$s{$o}++;$o==91?
$o=44:($o==92?$o=32:0);$g=chr$o;for(0..24){if($_[$_]=~m)$g)i){for$m(@a,$_[$_])
{substr $§,$_,$|,$m;print$§;select$/,$/,$/,0.1}}}print$§}print$/