From 3e7672009ab10d798018fdbabce6c3cb281ccfe5 Mon Sep 17 00:00:00 2001 From: mguessan Date: Mon, 8 Jul 2013 21:48:31 +0000 Subject: [PATCH] New experimental davmail.popCommonDeleted flag to switch to a different property on old Exchange 2003 servers git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@2154 3d1905a2-6b24-0410-a738-b14d5a86fcbd --- src/java/davmail/exchange/dav/Field.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/java/davmail/exchange/dav/Field.java b/src/java/davmail/exchange/dav/Field.java index 992e95e0..0e230bf4 100644 --- a/src/java/davmail/exchange/dav/Field.java +++ b/src/java/davmail/exchange/dav/Field.java @@ -18,6 +18,7 @@ */ package davmail.exchange.dav; +import davmail.Settings; import davmail.util.StringUtil; import org.apache.jackrabbit.webdav.property.DavPropertyName; import org.apache.jackrabbit.webdav.property.DefaultDavProperty; @@ -121,14 +122,20 @@ public class Field { // POP and IMAP message createField("messageSize", 0x0e08, PropertyType.Integer);//PR_MESSAGE_SIZE createField("imapUid", 0x0e23, PropertyType.Integer);//PR_INTERNET_ARTICLE_NUMBER - createField("junk", 0x1083, PropertyType.Integer); + createField("junk", 0x1083, PropertyType.Integer); //PR_SPAMTYPE createField("flagStatus", 0x1090, PropertyType.Integer);//PR_FLAG_STATUS createField("messageFlags", 0x0e07, PropertyType.Integer);//PR_MESSAGE_FLAGS createField("lastVerbExecuted", 0x1081, PropertyType.Integer);//PR_LAST_VERB_EXECUTED createField("iconIndex", 0x1080, PropertyType.Integer);//PR_ICON_INDEX createField(URN_SCHEMAS_HTTPMAIL, "read"); //createField("read", 0x0e69, PropertyType.Boolean);//PR_READ - createField("deleted", DistinguishedPropertySetType.Common, 0x8570, "deleted", PropertyType.String); + + if (Settings.getBooleanProperty("davmail.popCommonDeleted", true)) { + // deleted flag, see http://microsoft.public.win32.programmer.messaging.narkive.com/w7Mrsrsx/how-to-detect-deleted-imap-messages-using-mapi-outlook-object-model-api + createField("deleted", DistinguishedPropertySetType.Common, 0x8570, "deleted", PropertyType.String); + } else { + createField("deleted", DistinguishedPropertySetType.PublicStrings); + } //createField(URN_SCHEMAS_HTTPMAIL, "date");//PR_CLIENT_SUBMIT_TIME, 0x0039 createField("date", 0x0e06, PropertyType.SystemTime);//PR_MESSAGE_DELIVERY_TIME