Author: Kjetil Torgrim Homme Date: To: W B Hacker CC: exim-users Subject: Re: [exim] RFC 5321, 5322
On Thu, 2008-10-09 at 05:18 +0800, W B Hacker wrote: > Kjetil Torgrim Homme wrote:
> > Exim's behaviour is "guess what was meant". it actually checks the line
> > ending of the first line in the message to determine what convention the
> > sender prefers. if it sends CRLF, Exim will *only* accept CRLF for the
> > rest of the message. the same is true for LF.
>
> I've never had a need to check, but the question then arises.. to the
> extent Exim has shifted mode to whatever was put on its plate, does it
> then follow suit when adding lines?
>
> And/or does it 'repair' some/all/no non-conforming lines before onpassing?
unfortunately, Exim uses LF internally, so a CRLF message will still get
LF terminated headers in the spool. LF is always converted to CRLF when
sent. note that the *body* is untouched no matter what, for better or
for worse.
I think making Exim use CRLF in its queue would be a worthwhile fix, but
it's probably quite a bit of work. the upside is that *sending* the
message requires no massage to be done, and you can even use modern
syscalls like sendfile(2). final delivery to a Unix mbox would need to
change CRLF to LF, of course.
(disclaimer: I haven't looked at this code since 4.52 or thereabouts).
--
regards,
Kjetil T.