使用getAttachmentContentAsync下载日历项目附件会在OWA和Outlook Desktop之间返回不同的数据

使用getAttachmentContentAsync下载日历项目附件会在OWA和Outlook Desktop之间返回不同的数据,outlook,outlook-addin,outlook-web-addins,Outlook,Outlook Addin,Outlook Web Addins,当使用getAttachmentContentAsync从同一封电子邮件中检索要保存的内容时,我们看到桌面Outlook客户端和OWA之间的行为有所不同 尝试打开保存的日历项目时,从Outlook桌面下载的日历项目将在Outlook或任何本机日历应用程序(Mac、Windows)中正确打开。但是,当从OWA打开保存的日历项目时,Outlook和本机日历应用程序都无法打开该事件,并显示一条错误消息,内容为“您的日历文件可能已损坏” 这是预期的行为吗?OWA中运行的加载项是否应该以不同的方式解析.i

当使用getAttachmentContentAsync从同一封电子邮件中检索要保存的内容时,我们看到桌面Outlook客户端和OWA之间的行为有所不同

尝试打开保存的日历项目时,从Outlook桌面下载的日历项目将在Outlook或任何本机日历应用程序(Mac、Windows)中正确打开。但是,当从OWA打开保存的日历项目时,Outlook和本机日历应用程序都无法打开该事件,并显示一条错误消息,内容为“您的日历文件可能已损坏”

这是预期的行为吗?OWA中运行的加载项是否应该以不同的方式解析.ics项目附件的AttachmentContent.content?

复制步骤
1.在OWA或Outlook桌面中查看带有日历项目附件的电子邮件。
2.使用下载外接程序上下文中的日历项目附件。
3.保存返回的文件。format属性应为iCalendar,并应另存为.ics文件。
4.将.ics日历项添加到本机日历应用程序(Outlook桌面、Mac日历、Windows日历)
5.本机日历应用程序可以添加从Outlook桌面下载的.ics日历项,该项工作正常。本机日历应用程序无法添加从OWA下载的.ics日历项目

代码片段(在外接程序上下文中运行)

附件内容

var attachmentIds = Office.context.mailbox.item.attachments.map(function (a) {
    return a.id;
})

Office.context.mailbox.item.getAttachmentContentAsync(attachmentIds[0], function (asyncResult) {
   // handle callback
   console.log(asyncResult.value.content); // attachmentContent
});
观察检索到的附件内容之间的差异

从Outlook Desktop(1911 12228.20332)中,日历项附件的
附件content.content
如下所示

BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 16.0 MIMEDIR//EN
VERSION:2.0
METHOD:PUBLISH
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VTIMEZONE
TZID:Pacific Standard Time
BEGIN:STANDARD
DTSTART:16011104T020000
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=11
TZOFFSETFROM:-0700
TZOFFSETTO:-0800
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010311T020000
RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3
TZOFFSETFROM:-0800
TZOFFSETTO:-0700
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
CLASS:PUBLIC
CREATED:20191210T000228Z
DESCRIPTION:\n\n
DTEND;TZID="Pacific Standard Time":20170519T083000
DTSTAMP:20191210T003452Z
DTSTART;TZID="Pacific Standard Time":20170519T080000
LAST-MODIFIED:20191210T000228Z
PRIORITY:5
RRULE:FREQ=MONTHLY;COUNT=12;BYMONTHDAY=19
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Test Event
TRANSP:OPAQUE
UID:040000008200E00074C5B7101A82E00800000000A351638858C8D201000000000000000
    01000000041A54A4D53F4A1489A80440AC927AA24
X-ALT-DESC;FMTTYPE=text/html:<html><head><style type="text/css" style="disp
    lay:none\;"><!-- P {margin-top:0\;margin-bottom:0\;} --></Style></Head><bo
    dy dir="ltr"><div id="divtagdefaultwrapper" style="font-size:12pt\;color:#
    000000\;font-family:Calibri\,Arial\,Helvetica\,sans-serif\;" dir="ltr"><p>
    <br>\n</P></Div></Body></Html>
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-DISALLOW-COUNTER:FALSE
X-MS-OLK-APPTLASTSEQUENCE:0
BEGIN:VALARM
TRIGGER:-PT15M
ACTION:DISPLAY
DESCRIPTION:Reminder
END:VALARM
END:VEVENT
BEGIN:VEVENT
CLASS:PUBLIC
CREATED:20191210T000228Z
DESCRIPTION:\n\n
DTEND:20170519T153000Z
DTSTAMP:20170509T001050Z
DTSTART:20170519T150000Z
LAST-MODIFIED:20191210T000228Z
PRIORITY:5
RECURRENCE-ID:20170519T150000Z
SEQUENCE:0
TRANSP:OPAQUE
UID:040000008200E00074C5B7101A82E00800000000A351638858C8D201000000000000000
    01000000041A54A4D53F4A1489A80440AC927AA24
X-ALT-DESC;FMTTYPE=text/html:<html><head><style type="text/css" style="disp
    lay:none\;"><!-- P {margin-top:0\;margin-bottom:0\;} --></Style></Head><bo
    dy dir="ltr"><div id="divtagdefaultwrapper" style="font-size:12pt\;color:#
    000000\;font-family:Calibri\,Arial\,Helvetica\,sans-serif\;" dir="ltr"><p>
    <br>\n</P></Div></Body></Html>
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
X-MICROSOFT-CDO-IMPORTANCE:1
X-MS-OLK-APPTSEQTIME:20170509T001050Z
END:VEVENT
END:VCALENDAR
From: Jules Wada <jules.wada@sfdcmsft.com>
Subject: Test Event
Thread-Index: AdLIWIhlDG6lIvpt90Gwy2I/zPumFg==
Date: Tue, 9 May 2017 00:09:31 +0000
Message-ID:
    <MWHPR08MB251172981867AF63CA5D3B59F3EF0@MWHPR08MB2511.namprd08.prod.outlook.com>
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
X-MS-Exchange-Organization-RecordReviewCfmType: 0
Content-Type: multipart/alternative;
    boundary="_000_MWHPR08MB251172981867AF63CA5D3B59F3EF0MWHPR08MB2511namp_"
MIME-Version: 1.0

--_000_MWHPR08MB251172981867AF63CA5D3B59F3EF0MWHPR08MB2511namp_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

DQo=

--_000_MWHPR08MB251172981867AF63CA5D3B59F3EF0MWHPR08MB2511namp_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgc3R5bGU9
ImRpc3BsYXk6bm9uZTsiPjwhLS0gUCB7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206MDt9IC0t
Pjwvc3R5bGU+DQo8L2hlYWQ+DQo8Ym9keSBkaXI9Imx0ciI+DQo8ZGl2IGlkPSJkaXZ0YWdkZWZh
dWx0d3JhcHBlciIgc3R5bGU9ImZvbnQtc2l6ZToxMnB0O2NvbG9yOiMwMDAwMDA7Zm9udC1mYW1p
bHk6Q2FsaWJyaSxBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsiIGRpcj0ibHRyIj4NCjxwPjxi
cj4NCjwvcD4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K

--_000_MWHPR08MB251172981867AF63CA5D3B59F3EF0MWHPR08MB2511namp_
Content-Type: text/calendar; charset="utf-8"; method=PUBLISH
Content-Transfer-Encoding: base64

QkVHSU46VkNBTEVOREFSDQpNRVRIT0Q6UFVCTElTSA0KUFJPRElEOk1pY3Jvc29mdCBFeGNoYW5n
ZSBTZXJ2ZXIgMjAxMA0KVkVSU0lPTjoyLjANCkJFR0lOOlZUSU1FWk9ORQ0KVFpJRDpQYWNpZmlj
IFN0YW5kYXJkIFRpbWUNCkJFR0lOOlNUQU5EQVJEDQpEVFNUQVJUOjE2MDEwMTAxVDAyMDAwMA0K
VFpPRkZTRVRGUk9NOi0wNzAwDQpUWk9GRlNFVFRPOi0wODAwDQpSUlVMRTpGUkVRPVlFQVJMWTtJ
TlRFUlZBTD0xO0JZREFZPTFTVTtCWU1PTlRIPTExDQpFTkQ6U1RBTkRBUkQNCkJFR0lOOkRBWUxJ
R0hUDQpEVFNUQVJUOjE2MDEwMTAxVDAyMDAwMA0KVFpPRkZTRVRGUk9NOi0wODAwDQpUWk9GRlNF
VFRPOi0wNzAwDQpSUlVMRTpGUkVRPVlFQVJMWTtJTlRFUlZBTD0xO0JZREFZPTJTVTtCWU1PTlRI
PTMNCkVORDpEQVlMSUdIVA0KRU5EOlZUSU1FWk9ORQ0KQkVHSU46VkVWRU5UDQpPUkdBTklaRVI7
Q049SnVsZXMgV2FkYTpNQUlMVE86anVsZXMud2FkYUBzZmRjbXNmdC5jb20NCkRFU0NSSVBUSU9O
O0xBTkdVQUdFPWVuLVVTOlxuDQpSUlVMRTpGUkVRPU1PTlRITFk7VU5USUw9MjAxODA1MThUMTUw
MDAwWjtJTlRFUlZBTD0xO0JZTU9OVEhEQVk9MTkNClVJRDowNDAwMDAwMDgyMDBFMDAwNzRDNUI3
MTAxQTgyRTAwODAwMDAwMDAwQTM1MTYzODg1OEM4RDIwMTAwMDAwMDAwMDAwMDAwMA0KIDAxMDAw
MDAwMDQxQTU0QTRENTNGNEExNDg5QTgwNDQwQUM5MjdBQTI0DQpTVU1NQVJZO0xBTkdVQUdFPWVu
LVVTOlRlc3QgRXZlbnQNCkRUU1RBUlQ7VFpJRD1QYWNpZmljIFN0YW5kYXJkIFRpbWU6MjAxNzA1
MTlUMDgwMDAwDQpEVEVORDtUWklEPVBhY2lmaWMgU3RhbmRhcmQgVGltZToyMDE3MDUxOVQwODMw
MDANCkNMQVNTOlBVQkxJQw0KUFJJT1JJVFk6NQ0KRFRTVEFNUDoyMDE5MTIxMFQwMDAyMjhaDQpU
UkFOU1A6T1BBUVVFDQpTVEFUVVM6Q09ORklSTUVEDQpTRVFVRU5DRTowDQpMT0NBVElPTjtMQU5H
VUFHRT1lbi1VUzoNClgtTUlDUk9TT0ZULUNETy1BUFBULVNFUVVFTkNFOjANClgtTUlDUk9TT0ZU
LUNETy1PV05FUkFQUFRJRDoyMTE1MzIzNzkxDQpYLU1JQ1JPU09GVC1DRE8tQlVTWVNUQVRVUzpC
VVNZDQpYLU1JQ1JPU09GVC1DRE8tSU5URU5ERURTVEFUVVM6QlVTWQ0KWC1NSUNST1NPRlQtQ0RP
LUFMTERBWUVWRU5UOkZBTFNFDQpYLU1JQ1JPU09GVC1DRE8tSU1QT1JUQU5DRToxDQpYLU1JQ1JP
U09GVC1DRE8tSU5TVFRZUEU6MQ0KWC1NSUNST1NPRlQtRE9OT1RGT1JXQVJETUVFVElORzpGQUxT
RQ0KWC1NSUNST1NPRlQtRElTQUxMT1ctQ09VTlRFUjpGQUxTRQ0KWC1NSUNST1NPRlQtTE9DQVRJ
T05TOltdDQpCRUdJTjpWQUxBUk0NCkRFU0NSSVBUSU9OOlJFTUlOREVSDQpUUklHR0VSO1JFTEFU
RUQ9U1RBUlQ6LVBUMTVNDQpBQ1RJT046RElTUExBWQ0KRU5EOlZBTEFSTQ0KRU5EOlZFVkVOVA0K
QkVHSU46VkVWRU5UDQpVSUQ6MDQwMDAwMDA4MjAwRTAwMDc0QzVCNzEwMUE4MkUwMDgwMDAwMDAw
MEEzNTE2Mzg4NThDOEQyMDEwMDAwMDAwMDAwMDAwMDANCiAwMTAwMDAwMDA0MUE1NEE0RDUzRjRB
MTQ4OUE4MDQ0MEFDOTI3QUEyNA0KUkVDVVJSRU5DRS1JRDtUWklEPVBhY2lmaWMgU3RhbmRhcmQg
VGltZToyMDE3MDUxOVQwODAwMDANClNVTU1BUlk6VGVzdCBFdmVudA0KRFRTVEFSVDtUWklEPVBh
Y2lmaWMgU3RhbmRhcmQgVGltZToyMDE3MDUxOVQwODAwMDANCkRURU5EO1RaSUQ9UGFjaWZpYyBT
dGFuZGFyZCBUaW1lOjIwMTcwNTE5VDA4MzAwMA0KQ0xBU1M6UFVCTElDDQpQUklPUklUWTo1DQpE
VFNUQU1QOjIwMTcwNTA5VDAwMTA1MFoNClRSQU5TUDpPUEFRVUUNClNUQVRVUzpDT05GSVJNRUQN
ClNFUVVFTkNFOjANCkxPQ0FUSU9OOg0KWC1NSUNST1NPRlQtQ0RPLUFQUFQtU0VRVUVOQ0U6MA0K
WC1NSUNST1NPRlQtQ0RPLU9XTkVSQVBQVElEOjIxMTUzMjM3OTENClgtTUlDUk9TT0ZULUNETy1C
VVNZU1RBVFVTOkJVU1kNClgtTUlDUk9TT0ZULUNETy1JTlRFTkRFRFNUQVRVUzpCVVNZDQpYLU1J
Q1JPU09GVC1DRE8tQUxMREFZRVZFTlQ6RkFMU0UNClgtTUlDUk9TT0ZULUNETy1JTVBPUlRBTkNF
OjENClgtTUlDUk9TT0ZULUNETy1JTlNUVFlQRTozDQpYLU1JQ1JPU09GVC1ET05PVEZPUldBUkRN
RUVUSU5HOkZBTFNFDQpYLU1JQ1JPU09GVC1ESVNBTExPVy1DT1VOVEVSOkZBTFNFDQpFTkQ6VkVW
RU5UDQpFTkQ6VkNBTEVOREFSDQo=

--_000_MWHPR08MB251172981867AF63CA5D3B59F3EF0MWHPR08MB2511namp_--

你能提供重现问题的确切步骤吗?我无法理解您是在使用加载项还是outlook应用程序保存事件。已使用一些步骤更新帖子以进行复制。我正在下载作为日历项目附件(.ics)附加到电子邮件的活动内容。感谢分享这些步骤。你能和我们分享一下你用来下载附件内容的代码片段吗?这可能有助于我们了解出了什么问题。我正在使用office.js中的getAttachmentContentAsync api调用。我将用代码片段更新帖子。不幸的是,我仍然无法重现您面临的问题,因此我需要您的更多帮助。当您在OWA和Outlook for Desktop上运行共享的代码段时,在附加了日历事件(以.ics格式)的电子邮件项目上,
asyncResult.value.content
应提供完全相同的输出,即附件内容的Base64编码版本。如果您解码了内容,您应该会得到一个格式化的事件,就像您在第一个实例中共享的一样。您看到的
asyncResult.value.content
为您返回的内容有什么不同吗?