Download raw body.
I fixed some mistakes and simplified a bit the code:
https://en.roquesor.com/Downloads/mail_patches.tar.gz
I understand why my proposal doesn't attract too much attention, I can
count only one person here using mail(1) as a MUA. Anyway, I'd like to
know if I'm doing something wrong.
At least I'd appreciate some guidance about the general procedure.
Regarding the size, for example, I understand conceptually the
convenience of splitting and committing a diff in small chunks to gain
control and avoid introducing regressions, but isn't it necessary to
test the full functional patches first, to evaluate what they do?
________________________________________
Summary. Back to not assuming MTAs SMTPUTF8 support (can be easily
reverted in the future):
date.diff
Generate User-Agent[1] and Date[2].
id.diff
Generate Message-ID, In-Reply-To, References. [3]
Fold From, Subject and References at 72 columns. [8]
*Use of Base64 "encoded-words" in From and Subject*. [7]
mime.diff
Generate MIME_Version[4], Content-Type[5] and
Content-Transfer-Encoding[6].
(When non valid UTF-8 is detected in the body MIME headers are not
generated.)
all.diff
Including all the above.
Some of these standars have updates. The controversial transition is
from 2045 to 6532 (which requires MTA SMTPUTF8 support.)
(1) Just to know if anyone tested my patches. ;-)
(2) https://www.rfc-editor.org/rfc/rfc5322#section-3.6.1
(3) https://www.rfc-editor.org/rfc/rfc5322#section-3.6.4
(4) https://www.rfc-editor.org/rfc/rfc2045#section-4
(5) https://www.rfc-editor.org/rfc/rfc2045#section-5.2
(6) https://www.rfc-editor.org/rfc/rfc2045#section-6
(7) https://www.rfc-editor.org/rfc/rfc2047#section-5
(8) https://www.rfc-editor.org/rfc/rfc5322#section-2.2.3