当我使用CreateEmail()调用创建草稿邮件时,如何预先设置目标保存文件夹,以便当用户按“发送”和Outlook时最终发送的项目将被保存到?如何使用Exchange EWS设置SaveSentMessageFolder
在Outlook中,它是在选项 - >“保存已发送的项目要”,但我不知道该怎么做,在EWS
谢谢
当我使用CreateEmail()调用创建草稿邮件时,如何预先设置目标保存文件夹,以便当用户按“发送”和Outlook时最终发送的项目将被保存到?如何使用Exchange EWS设置SaveSentMessageFolder
在Outlook中,它是在选项 - >“保存已发送的项目要”,但我不知道该怎么做,在EWS
谢谢
在EWS,您可以指定哪个文件夹想要一条你的发送信息保存到。如果您使用EWS Managed API,则通过Overload for Send或SendAndSaveCopy执行此操作,否则默认将为当前安全主体的草稿文件夹和sent-items文件夹。
如果您创建与EWS草案,并与Outlook发送,那么你就需要将PR_SENTMAIL_ENTRYID https://msdn.microsoft.com/en-us/library/office/cc842003.aspx设置为你希望Outlook的邮件保存到
如
ExtendedPropertyDefinition PR_SENTMAIL_ENTRYID = new ExtendedPropertyDefinition(0x0E0A,MapiPropertyType.Binary);
TestMove.SetExtendedProperty(PR_SENTMAIL_ENTRYID,ConvertHexStringToByteArray("00000000BE1CDD3D9606274890F3DE4B7DDFBE490100751047FD18EA304D9D40B1428BAC20D00000364670AA0000"));
的文件夹的HexId (这与Outlook设置的属性相同)
您需要确保使用文件夹的HexId而不是EWSId来获取HexId,您可以使用convertId,例如
AlternateId ai = new AlternateId(IdFormat.EwsId, folder.Id.UniqueId, "[email protected]");
AlternateId Convertedai = (AlternateId)service.ConvertId(ai, IdFormat.HexEntryId);
ExtendedPropertyDefinition PR_SENTMAIL_ENTRYID = new ExtendedPropertyDefinition(0x0E0A,MapiPropertyType.Binary);
TestMove.SetExtendedProperty(PR_SENTMAIL_ENTRYID, ConvertHexStringToByteArray(Convertedai.UniqueId));
internal static byte[] ConvertHexStringToByteArray(string hexString)
{
if (hexString.Length % 2 != 0)
{
throw new ArgumentException(String.Format(CultureInfo.InvariantCulture, "The binary key cannot have an odd number of digits: {0}", hexString));
}
byte[] HexAsBytes = new byte[hexString.Length/2];
for (int index = 0; index < HexAsBytes.Length; index++)
{
string byteValue = hexString.Substring(index * 2, 2);
HexAsBytes[index] = byte.Parse(byteValue, NumberStyles.HexNumber, CultureInfo.InvariantCulture);
}
return HexAsBytes;
}
干杯 格伦
谢谢。这应该正是我想要的。但我有一个FolderId对象说FFF 我调用SetExtendedProperty(PR_SENTMAIL_ENTRYID,Encoding.ASCII.GetBytes(FFF.UniqueId)); 不做这项工作。任何想法? – DayDayHappy
您需要确保将EWSid转换为文件夹的HexEntryId(与PR_EntryId相同)。我已经在 –
以上发布了一个示例,非常感谢。它完美的作品 – DayDayHappy