Fixed encoding of nested messages

pull/210/head
M66B 2 years ago
parent 5433691b5e
commit 269b2a7e8c

@ -294,7 +294,8 @@ public class IMAPBodyPart extends MimeBodyPart implements ReadableMime {
);
else if (bs.isNested() && message.isREV1() && bs.envelope != null)
dh = new DataHandler(
new IMAPNestedMessage(message,
new IMAPNestedMessage(message,
bs.encoding,
bs.bodies[0],
bs.envelope,
sectionId),

@ -830,7 +830,8 @@ public class IMAPMessage extends MimeMessage implements ReadableMime {
* FETCH the components of nested messages
*/
dh = new DataHandler(
new IMAPNestedMessage(this,
new IMAPNestedMessage(this,
bs.encoding,
bs.bodies[0],
bs.envelope,
sectionId == null ? "1" : sectionId + ".1"),

@ -16,6 +16,8 @@
package com.sun.mail.imap;
import android.text.TextUtils;
import java.io.*;
import javax.mail.*;
import com.sun.mail.imap.protocol.*;
@ -29,6 +31,7 @@ import com.sun.mail.iap.ProtocolException;
public class IMAPNestedMessage extends IMAPMessage {
private IMAPMessage msg; // the enclosure of this nested message
private String encoding;
/**
* Package private constructor. <p>
@ -36,9 +39,10 @@ public class IMAPNestedMessage extends IMAPMessage {
* Note that nested messages have no containing folder, nor
* a message number.
*/
IMAPNestedMessage(IMAPMessage m, BODYSTRUCTURE b, ENVELOPE e, String sid) {
IMAPNestedMessage(IMAPMessage m, String enc, BODYSTRUCTURE b, ENVELOPE e, String sid) {
super(m._getSession());
msg = m;
encoding = enc;
bs = b;
envelope = e;
sectionId = sid;
@ -126,7 +130,7 @@ public class IMAPNestedMessage extends IMAPMessage {
@Override
public String getEncoding() throws MessagingException {
return bs.encoding;
return (TextUtils.isEmpty(encoding) ? bs.encoding : encoding);
}
/*

Loading…
Cancel
Save