Bug 1222046 - Fix SMTP server responding with timeout due to missing CRLF at end of forwarded HTML message. r=mkmelin,jorgk
This commit is contained in:
Родитель
031a80891c
Коммит
644e3e0bea
|
@ -1264,6 +1264,9 @@ NS_IMETHODIMP nsMsgCompose::SendMsg(MSG_DeliverMode deliverMode,
|
|||
m_compFields->GetBody(msgBody);
|
||||
}
|
||||
if (!msgBody.IsEmpty()) {
|
||||
// Ensure body ends in CRLF to avoid SMTP server timeout when sent.
|
||||
if (!StringEndsWith(msgBody, NS_LITERAL_STRING("\r\n")))
|
||||
msgBody.AppendLiteral("\r\n");
|
||||
bool isAsciiOnly = mozilla::IsAsciiNullTerminated(
|
||||
static_cast<const char16_t *>(msgBody.get()));
|
||||
// Convert body to mail charset
|
||||
|
|
|
@ -127,7 +127,8 @@ async function testBodyWithLongLine() {
|
|||
'<meta http-equiv="content-type" content="text/html; charset=utf-8">' +
|
||||
"</head><body>" +
|
||||
longMultibyteLine +
|
||||
"</body></html>";
|
||||
"</body></html>" +
|
||||
newline;
|
||||
fields.body = htmlMessage;
|
||||
await richCreateMessage(fields, [], identity);
|
||||
checkDraftHeadersAndBody(
|
||||
|
@ -148,7 +149,7 @@ async function testBodyWithLongLine() {
|
|||
"Content-Type": "text/plain; charset=UTF-8; format=flowed",
|
||||
"Content-Transfer-Encoding": "base64",
|
||||
},
|
||||
longMultibyteLine + newline // Expected body: The message without the tags.
|
||||
longMultibyteLine + " " + newline + newline // Expected body: The message without the tags.
|
||||
);
|
||||
|
||||
// Now CJK.
|
||||
|
@ -166,7 +167,7 @@ async function testBodyWithLongLine() {
|
|||
"Content-Type": "text/html; charset=UTF-8",
|
||||
"Content-Transfer-Encoding": "base64",
|
||||
},
|
||||
htmlMessage
|
||||
htmlMessage + newline
|
||||
);
|
||||
|
||||
// Again, but this time as plain text.
|
||||
|
@ -179,7 +180,7 @@ async function testBodyWithLongLine() {
|
|||
"Content-Type": "text/plain; charset=UTF-8; format=flowed",
|
||||
"Content-Transfer-Encoding": "base64",
|
||||
},
|
||||
longMultibyteLineCJK + newline // Expected body: The message without the tags.
|
||||
longMultibyteLineCJK + " " + newline + newline // Expected body: The message without the tags.
|
||||
);
|
||||
|
||||
// Now a special test for ISO-2022-JP.
|
||||
|
@ -199,7 +200,7 @@ async function testBodyWithLongLine() {
|
|||
"Content-Type": "text/html; charset=ISO-2022-JP",
|
||||
"Content-Transfer-Encoding": "base64",
|
||||
},
|
||||
htmlMessage,
|
||||
htmlMessage + newline,
|
||||
"ISO-2022-JP"
|
||||
);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче