Re: CRLF

Mark Crispin <[email protected]>
Newsgroups gmane.mail.imap.uw.c-client
Message-ID <[email protected]>
On Sun, 27 Sep 2009, Oswald Buddenhagen wrote:
> my MDA uses mail_append() with a mail_string. the string contents are
> not pre-normalized to CRLF upon the call.

Do you really mean an MDA (Message Delivery Agent, called by an incoming 
SMTP server)?

SMTP transmits text newlines in CRLF format.  If the text presented to an 
MDA is not in CRLF format, then something (most likely the SMTP server) 
"normalized" the SMTP CRLFs to (I assume) UNIX LF-only newlines.  You need 
to tell the SMTP server not to do that.  In sendmail, this is usually done 
with "E=\r\n" in the Mlocal line in your sendmail.cf (see the tmail man 
page).

If you do not really mean an MDA, what do you mean?  Do you mean MUA (Mail 
User Agent), as in Pine or Alpine?

Please clarify.

> the mix driver writes the unix
> line endings literally into the mailbox, and when reading it, it
> delivers the contents literally. of course, this results in the imap
> server being non-compliant with the spec.

I don't know why you think that this results in the IMAP server being 
non-compliant with the spec; IMAP has no such requirement upon the data it 
processes or transmits.  IMAP does, indeed, require CRLF newlines in IMAP 
protocol, but protocol and data are two entirely different things.  IMAP 
*data* is a sequence of zero or more octets from 0x01 to 0xff.

> now i wonder whether my MDA is expected to pre-normalize the data before
> building the mail_string or whether the mix driver is broken?

mix is performing as designed and desired.  mix can, among other things, 
be used to store binary content.  So can IMAP.

If you want to store an RFC 5322-compliant message in mix (and IMAP!) you 
must present an RFC 5322-compliant message in the mail_string presented to 
mail_append().

Whether this means "your MDA is expected to pre-normalize the data" or 
"your MDA should not de-normalize the data from SMTP" or "blurdybloops are 
bombastic" is for you to determine.  I can't tell you which based upon the 
information you gave me.  I can tell you the requirements of IMAP, 
mail_string(), and mix.

I also made a suggestion as to what may be wrong if you really are talking 
about an MDA as opposed to something else.  There is no reason for an MDA 
to "pre-normalize" since an MDA's data should be in RFC 5322 compliant 
format to begin with.  If it is not, then something "fixed" it into 
non-compliance, and you would be better off telling it not to do that than 
to write additional broken code to "fix" a broken "fix".  Those who live 
by kludge towers ultimately are tossed from them.

-- Mark --

http://panda.com/mrc
Democracy is two wolves and a sheep deciding what to eat for lunch.
Liberty is a well-armed sheep contesting the vote.
_______________________________________________
Imap-uw mailing list
[email protected]
http://mailman2.u.washington.edu/mailman/listinfo/imap-uw
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.