fix(mail): Fix invalid content when forwarding a text/plain mail. Fixes #5983.

This commit is contained in:
smizrahi
2024-07-11 17:41:14 +02:00
parent a06331eb86
commit ef88039a4a
+6 -2
View File
@@ -134,9 +134,13 @@
// Ticket https://bugs.sogo.nu/view.php?id=5983
// In this case, the first HTML content is used, but it can be the previous forwarded mail
// We check if there is a text/plain before text/html in the types array
// and if the key is not `body[1` (second part of the mail)
// is this case, the text/plain is used prior to text/html.
if (index != NSNotFound && indexTextPlain != NSNotFound && indexTextPlain < index && [[[keys objectAtIndex: index] objectForKey:@"key"] rangeOfString:@"body[1"].location == NSNotFound)
if (index != NSNotFound // There is a text/html part
&& indexTextPlain != NSNotFound // There is a text/plain part
&& indexTextPlain < index // text/plain is before text/html
&& (indexTextPlain + 1) < [keys count] // text/plain is not the last part of the mail
&& [[[keys objectAtIndex: (indexTextPlain + 1)] objectForKey:@"mimeType"] rangeOfString:@"text/plain"].location != NSNotFound // The text/plain is followed up by another text/plain
)
index = indexTextPlain;
else if (index == NSNotFound)
index = [types indexOfObject: @"text/plain"];