D. J. Bernstein
Other documents

Bare LFs in SMTP

Most likely you're here because your mailer displayed the pointer ``See http://pobox.com/~djb/docs/smtplf.html.''

Where did that pointer come from?

It was generated by qmail, an Internet message transfer agent. Your mailer tried to send an e-mail message to a server running qmail. Unfortunately, qmail spotted a problem: your mailer sent a bare LF.

Why should I worry about bare LFs?

You can't get mail through to msn.com and thousands of other systems around the Internet. Your mailer is violating 822bis section 2.3, which specifically prohibits all bare LFs.

How can my mailer be fixed?

That depends on what software you're using.

Solaris 2.5 sendmail: Upgrade! Fixed in Solaris 2.5.1. You can fix the problem by putting ``,E=\r\n'' at the end of Mether, Mtcp, or Msmtp in sendmail.cf. (Note that Mether is not the same as DMether.)

sendmail V8 has a bug that will produce a bare LF in certain messages (e.g., messages with very long lines). This bug was identified in November 1996; I don't know if it has been fixed yet.

Eudora Pro 4.0 for Windows: Upgrade! The HTML LF problem was fixed in 4.0.1. The attachment LF problem was fixed in 4.1.

listproc 6.0c: Chuck Foster says you should add ``CONVERT(buf);'' before ``WRITE_TO_SOCKET'' around line 165 of sysmail.c in the Listproc source code.

fetchmail: Upgrade! Recent versions of fetchmail reportedly do the right thing. Make sure the forcecr option is on.

Galacticom WorldGroups: Reported 19970716. No information on how it can be fixed.

Claris Emailer: Reported 19980613. No information on how it can be fixed.

CipherTrust's IronMail SMTP gateway: Reported 2002.10.29 by Christopher Mahmood. No information on how it can be fixed.

What is a bare LF, anyway?

It is an ASCII linefeed (LF) character not preceded by an ASCII carriage-return (CR) character.

Every line in an Internet mail message is required to end with CR LF. The entire message ends with CR LF dot CR LF. 822bis specifically prohibits other uses of LF.

The mail clients discussed above are incorrectly ending lines with LF and, in most cases, ending the entire message with LF dot LF. That's not CR LF dot CR LF, so a server such as msn.com will sit there waiting for the rest of the message. After a while it'll give up and drop the connection. Your mail doesn't get through.

Some mail servers convert a bare LF into CR LF, and accept LF dot LF as the end of a mail message. This behavior is specifically prohibited by 821bis.