Re: [ietf-smtp] Stray <LF> in the middle of messages

Hector Santos <> Thu, 11 June 2020 13:37 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id C219A3A085A for <>; Thu, 11 Jun 2020 06:37:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.1
X-Spam-Status: No, score=-2.1 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key) header.b=Ubh3c/of; dkim=pass (1024-bit key) header.b=fkRC2n0o
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id Xs1jZS4yOSsy for <>; Thu, 11 Jun 2020 06:37:21 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 92BCE3A083E for <>; Thu, 11 Jun 2020 06:37:21 -0700 (PDT)
DKIM-Signature: v=1;; s=tms1; a=rsa-sha1; c=simple/relaxed; l=2360; t=1591882631;; atpsh=sha1; h=Received:Received:Received:Received:Message-ID:Date:From: Organization:To:Subject:List-ID; bh=2udPUJkoxBobOmM+tGNapAT/my0=; b=Ubh3c/of9G5Q8hZNFsjnPYI83KXH5tQTlGb5/f+hmtX9KeaY5nioXMlor/fN+E PifDcOGNqHuAaAw6yqvSAUh0aehp4KGccmwfonhCnEsTHqmRVoR87UOno4Wjcjw6 LAU2CwCx4HpX03hEx5qCMYHg/YjVpygbAOyzL+ophrOVM=
Received: by (Wildcat! SMTP Router v8.0.454.10) for; Thu, 11 Jun 2020 09:37:11 -0400
Authentication-Results:; dkim=pass header.s=tms1; dmarc=pass policy=reject (atps signer);
Received: from ([]) by (Wildcat! SMTP v8.0.454.10) with ESMTP id 2609937580.1.4380; Thu, 11 Jun 2020 09:37:10 -0400
DKIM-Signature: v=1;; s=tms1; a=rsa-sha256; c=simple/relaxed; l=2360; t=1591882595; h=Received:Received: Message-ID:Date:From:Organization:To:Subject:List-ID; bh=r0NFJd0 msOY8D3tEjaS7Uzdkceb6XPwPRBizlEP7z2k=; b=fkRC2n0o5F+e7TkuW95wYkW HbGbWgAer0hBM+3pq6WK7jwpgTJbvl3rpMmFFuygVunCdxRSEjVjTuaKAQirQ9Xp wNSz00rYAEGh3IRBXndo9HzzfkUrzcW3kejwMOGlN1AMICqIQED70J/xDtVR6fpK 7U1YWpX3hNJeui0ZujGo=
Received: by (Wildcat! SMTP Router v8.0.454.10) for; Thu, 11 Jun 2020 09:36:35 -0400
Received: from [] ([]) by (Wildcat! SMTP v8.0.454.10) with ESMTP id 3616290796.1.34928; Thu, 11 Jun 2020 09:36:34 -0400
Message-ID: <>
Date: Thu, 11 Jun 2020 09:37:13 -0400
From: Hector Santos <>
Organization: Santronics Software, Inc.
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.8.1
MIME-Version: 1.0
References: <> <> <>
In-Reply-To: <>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Archived-At: <>
Subject: Re: [ietf-smtp] Stray <LF> in the middle of messages
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Discussion of issues related to Simple Mail Transfer Protocol \(SMTP\) \[RFC 821, RFC 2821, RFC 5321\]" <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 11 Jun 2020 13:37:24 -0000

On 6/10/2020 9:32 AM, Dave Crocker wrote:
> On 6/8/2020 7:03 AM, Hector Santos wrote:
>> The Internet Mail format officially starting with RFC 822 selected
>> the DOS/Windows format <CR><LF> format.
>> Why?
> Any interesting computer network seeks interoperability among
> heterogeneous systems.  All sorts of differences need to be dealt
> with, including differences in the end-of-line construct.
> The simplest and most scalable way to accomodate such differences is
> to define a /single/ standard and require each system to between their
> local convention and the network's canonical convention.
> This approach was as the core or the early Arpanet protocols,
> including FTP as already noted in this thread.  That's from the early
> 1970s timeframe.
> RFC 822's predecessor, RFC 733, was 1977.  SMTP was 1982.  They merely
> continued the convention.
> Telnet and FTP chose CRLF as the end of line construct.


But there has to be a more practical "ergonomic UI" reason and it 
probably started with how the terminal/client application worked 
and/or was configured to

- ECHO back characters.
- Send CRLF or CR when the Enter/Return key was hit
- Half or Full Duplex mode.

Half means you enter the entire line first locally. When the 
Enter/Return key were hit, it sent the entire line. This can be viewed 
like a "Batch Mode". Full meant each character was sent and processed 
one at a time, echoing back the character processed. This was akin to 
being Interactive and the early means of interactive spying on people 
by detecting each character, including what you began to type but 
decided not to hit enter/return. In your own mind, you believe the 
server was not watch or understand what you decide not to send.

These terminal option was very important and it had to fit with how 
the backend was expected to interact with the client.

So I always believe (and no sweat if I am wrong), the developers 
designing text-based client/server protocols most likely were 
designing and testing the protocol commands and state machine 
manually, online.  It explains the online HELP too. Who sees that? Who 
is it for? I suggest it was to assist the human, not the companion 
protocol automated client software.

Hector Santos,