mirror of
https://github.com/M66B/FairEmail.git
synced 2025-03-15 08:29:24 +00:00
Fixed nested IMAP message encoding
This commit is contained in:
parent
a99dd7cd17
commit
61d078f929
3 changed files with 17 additions and 3 deletions
|
@ -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"),
|
||||
|
@ -912,6 +913,11 @@ public class IMAPMessage extends MimeMessage implements ReadableMime {
|
|||
return;
|
||||
}
|
||||
InputStream is = getMimeStream();
|
||||
if (this instanceof IMAPNestedMessage) {
|
||||
String encoding = getEncoding();
|
||||
if (encoding != null)
|
||||
is = MimeUtility.decode(is, encoding);
|
||||
}
|
||||
try {
|
||||
// write out the bytes
|
||||
byte[] bytes = new byte[16*1024];
|
||||
|
|
|
@ -29,6 +29,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 +37,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;
|
||||
|
@ -124,6 +126,11 @@ public class IMAPNestedMessage extends IMAPMessage {
|
|||
return bs.size;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getEncoding() {
|
||||
return encoding;
|
||||
}
|
||||
|
||||
/*
|
||||
* Disallow setting flags on nested messages
|
||||
*/
|
||||
|
|
Loading…
Add table
Reference in a new issue