mirror of
https://github.com/moparisthebest/davmail
synced 2025-01-12 05:58:48 -05:00
IMAP: implement forwarded and answered flags
git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@331 3d1905a2-6b24-0410-a738-b14d5a86fcbd
This commit is contained in:
parent
88081c9e42
commit
f15d9c25e4
@ -544,7 +544,8 @@ public class ExchangeSession {
|
||||
} else if ("x0E070003".equals(localName)) {
|
||||
message.draft = "9".equals(prop.getPropertyAsString());
|
||||
} else if ("x10810003".equals(localName)) {
|
||||
message.answered = prop.getPropertyAsString().length() > 0;
|
||||
message.answered = "102".equals(prop.getPropertyAsString()) || "103".equals(prop.getPropertyAsString());
|
||||
message.forwarded = "104".equals(prop.getPropertyAsString());
|
||||
} else if ("isdeleted".equals(localName)) {
|
||||
message.deleted = "1".equals(prop.getPropertyAsString());
|
||||
} else if ("message-id".equals(prop.getLocalName())) {
|
||||
@ -583,6 +584,14 @@ public class ExchangeSession {
|
||||
patchMethod.addPropertyToSet("x10900003", entry.getValue(), "f", "http://schemas.microsoft.com/mapi/proptag/");
|
||||
} else if ("answered".equals(entry.getKey())) {
|
||||
patchMethod.addPropertyToSet("x10810003", entry.getValue(), "f", "http://schemas.microsoft.com/mapi/proptag/");
|
||||
if ("102".equals(entry.getValue())) {
|
||||
patchMethod.addPropertyToSet("x10800003", "261", "f", "http://schemas.microsoft.com/mapi/proptag/");
|
||||
}
|
||||
} else if ("forwarded".equals(entry.getKey())) {
|
||||
patchMethod.addPropertyToSet("x10810003", entry.getValue(), "f", "http://schemas.microsoft.com/mapi/proptag/");
|
||||
if ("104".equals(entry.getValue())) {
|
||||
patchMethod.addPropertyToSet("x10800003", "262", "f", "http://schemas.microsoft.com/mapi/proptag/");
|
||||
}
|
||||
} else if ("bcc".equals(entry.getKey())) {
|
||||
patchMethod.addPropertyToSet("bcc", entry.getValue(), "b", "urn:schemas:mailheader:");
|
||||
} else if ("draft".equals(entry.getKey())) {
|
||||
@ -949,6 +958,7 @@ public class ExchangeSession {
|
||||
public boolean flagged;
|
||||
public boolean draft;
|
||||
public boolean answered;
|
||||
public boolean forwarded;
|
||||
|
||||
public long getUidAsLong() {
|
||||
byte[] decodedValue = Base64.decode(uid.getBytes());
|
||||
@ -982,6 +992,9 @@ public class ExchangeSession {
|
||||
if (answered) {
|
||||
buffer.append("\\Answered ");
|
||||
}
|
||||
if (forwarded) {
|
||||
buffer.append("$Forwarded ");
|
||||
}
|
||||
return buffer.toString().trim();
|
||||
}
|
||||
|
||||
|
@ -155,8 +155,8 @@ public class ImapConnection extends AbstractConnection {
|
||||
} else {
|
||||
sendClient("* OK [UIDNEXT " + (messages.get(messages.size() - 1).getUidAsLong() + 1) + "]");
|
||||
}
|
||||
sendClient("* FLAGS (\\Answered \\Deleted \\Draft \\Flagged \\Seen $Forwarded Forwarded Junk)");
|
||||
sendClient("* OK [PERMANENTFLAGS (\\Answered \\Deleted \\Draft \\Flagged \\Seen $Forwarded Forwarded Junk \\*)]");
|
||||
sendClient("* FLAGS (\\Answered \\Deleted \\Draft \\Flagged \\Seen $Forwarded Junk)");
|
||||
sendClient("* OK [PERMANENTFLAGS (\\Answered \\Deleted \\Draft \\Flagged \\Seen $Forwarded Junk \\*)]");
|
||||
//sendClient("* [UNSEEN 1] first unseen message in inbox");
|
||||
sendClient(commandId + " OK [READ-WRITE] " + command + " completed");
|
||||
} else {
|
||||
@ -296,7 +296,9 @@ public class ImapConnection extends AbstractConnection {
|
||||
} else if ("\\Flagged".equals(flag)) {
|
||||
properties.put("flagged", "2");
|
||||
} else if ("\\Answered".equals(flag)) {
|
||||
properties.put("answered", "103");
|
||||
properties.put("answered", "102");
|
||||
} else if ("$Forwarded".equals(flag)) {
|
||||
properties.put("forwarded", "104");
|
||||
} else if ("\\Draft".equals(flag)) {
|
||||
properties.put("draft", "9");
|
||||
} else if ("Junk".equals(flag)) {
|
||||
@ -420,8 +422,11 @@ public class ImapConnection extends AbstractConnection {
|
||||
properties.put("flagged", "2");
|
||||
message.flagged = true;
|
||||
} else if ("\\Answered".equals(flag)) {
|
||||
properties.put("answered", "103");
|
||||
properties.put("answered", "102");
|
||||
message.answered = true;
|
||||
} else if ("$Forwarded".equals(flag)) {
|
||||
properties.put("forwarded", "104");
|
||||
message.forwarded = true;
|
||||
} else if ("Junk".equals(flag)) {
|
||||
properties.put("junk", "1");
|
||||
message.junk = true;
|
||||
|
Loading…
Reference in New Issue
Block a user