Bug #15841 Updated: CRLF to separate mail headers is incorrect

From: Date: Thu, 07 Mar 2002 09:48:57 +0000
Subject: Bug #15841 Updated: CRLF to separate mail headers is incorrect
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-1897@lists.php.net to get a copy of this message
 ID:               15841
 Updated by:       hholzgra@php.net
 Reported By:      rha@juggernaut.com.au
 Status:           Open
 Bug Type:         *Mail Related
 Operating System: Linux
 PHP Version:      4.1.2
 New Comment:

ok

1) blame qmail, it should know better ...
2) lets have SMTP as a default implementation
   for Unix mail(), too, instead of relying
   on external programs

the "it isn't broken, so don't fix it" argument
got even weaker right now ...


Previous Comments:
------------------------------------------------------------------------

[2002-03-06 14:58:38] rha@juggernaut.com.au

The point is that it is incorrect to send DOS line endings to a Unix
command line program.

Sending a message through qmail (for example) with \r\n line endings
results in extraneous \r's in the delivered email. qmail assumes the
user knows what they're doing and converts only the '\r' characters to
'\r\n'. So if you use '\r\n' it injects '\r\r\n' into the SMTP
conversation.

e.g. 
Headers:
"X-1: test1\nX-2: test2\r\nX-3: test3\r\nX-4: test4:

Message:
Subject: test message
X-1: test1
X-2: test2^M
X-3: test3^M
X-4: test4

I notice that some mail readers sanitize the incoming message and strip
the extra \r's (e.g. Eudora) but Mozilla doesn't and only the first
extra header is displayed as a header while the others appear in the
body of the message.

------------------------------------------------------------------------

[2002-03-06 12:28:00] hholzgra@php.net

i still do not see the point, even for unix/sendmail

even /usr/lib/sendmail will transfer the message
using SMTP, and during this step you will have
\r\n line endings anyway, or am i missing something?

------------------------------------------------------------------------

[2002-03-06 11:04:38] pcg-php@ais.cx

The Right Thing(TM), then, is to determine which method (direct or SMTP
injection) is being done. If SMTP, use \r\n. If direct, determine what
the OS' line terminator is (\r\n for Windows, \n for Unix, \r for Mac
(?!)) and use that instead.

------------------------------------------------------------------------

[2002-03-04 05:36:24] hholzgra@php.net

on windows we *do* talk STMP ...

------------------------------------------------------------------------

[2002-03-03 16:27:44] jhaar@trimble.co.nz

This is causing mail generated by PHP to be BLOCKED as being
potentially a virus by some anti-virus SMTP servers.

The presence of "\r\n" in headers is typically a sign of a virus trying
to reach Outlook. Some antivirus products now totally block MIME mail
containing "\r\n".

This means all mail generated by PHP programs...

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/15841

-- 
Edit this bug report at http://bugs.php.net/?id=15841&edit=1



Thread (30 messages)

« previous php.bugs (#1897) next »