[Exim] Suppressing non-printing error in a transport?

Inizio della pagina
Delete this message
Reply to this message
Autore: Phil Pennock
Data:  
To: Exim Users
Oggetto: [Exim] Suppressing non-printing error in a transport?
Hi,

In Exim 3.36, I'm seeing occasional errors generated from an autoreply
transport, when the original message contained non-printing characters
in it.

stuur_vakantie_antwoord:
driver = autoreply
[...]
subject = "Re: $h_subject"
[...]

Since this person is subscribed to a local mailing-list, expanded by
Exim, the Director restrictions against replying to -request addresses,
etc, don't apply ("senders = " matches received senders, not current
value of "errors_to") and postmaster will get the vacation messages (any
ideas of a fix for this are, incidentally, most welcome), so I also see
things like:

-----------------------------< cut here >-------------------------------
A message sent by

<someone@???>

could not be delivered to one or more of its recipients. The following
address(es) failed:

  usercode@???
    (ultimately generated from listname@???)
    Expansion of "Re: $h_subject" in stuur_vakantie_antwoord transport contains non-printing character 10
-----------------------------< cut here >-------------------------------


Now, I could use ${escape:$h_subject} and I suspect that might be close
enough, but I'm not sure that this should really be done. The newline
is followed by two space characters, so this is perfectly legitimate in
the headers.

I suspect that this was introduced as a protection against malicious
insertion of extra headers. Is there a way to bypass it? I can live
with accented characters being messed up (and can tell people to
MIME-escape their subjects correctly, grotesque as that bit of the
standard is), but this one seems to be rejecting valid input.

Enlightenment welcome,

/me returns to trying to kick MMDF into some semblance of a working MTA
/me sobs quietly

-Phil