Outlook 2013 邀请不显示嵌入的附件 - text/calendar;method=REQUEST
Outlook 2013 invite not showing embeded attachment - text/calendar;method=REQUEST
我正在创建 text/calendar 类型的电子邮件。它有 3 个备用视图:文本、html,最后一个是会议邀请或 .ics。我不是附上ics,而是放在第三视图的内容中。
当我发送它时,outlook 2013 正确接收了邀请并在邮件顶部显示 Accept/Tentative/Decline 按钮。
然而,当我尝试将附件嵌入到 event/meeting 时,它根本不抓取它。
如果我将 ics 作为附件发送,它将嵌入附件,但是用户必须单击 .ics 文件而不是获取内联 Accept/Tentative/Decline。
我是用一种叫做 tcl 的脚本语言生成的。我正在使用 mime 和 smtp 库。我一直在引用 tcl、c#、php 和 java 实现,但似乎没有人记录过这个确切的场景。
如果需要,我可以 post 我的代码,但它非常无关紧要。相关的是正在构建的 MIME 消息。
如何将附件嵌入到 event/calendar 项目中?
MIME-Version: 1.0
Content-ID: <30261.1428705114.6@cleaf1.mydomain.org>
Content-Type: multipart/related;
boundary="----- =_D0iKdgI+3r1IL2tYlWQ+zA=="
------- =_D0iKdgI+3r1IL2tYlWQ+zA==
MIME-Version: 1.0
Content-ID: <30261.1428705114.4@cleaf1.mydomain.org>
Content-Type: multipart/alternative;
boundary="----- =_6M80yPWZSMRuPfyOccOhUw=="
------- =_6M80yPWZSMRuPfyOccOhUw==
MIME-Version: 1.0
Content-ID: <30261.1428705114.1@cleaf1.mydomain.org>
Content-Type: text/plain;
charset="utf-8"
Content-Transfer-Encoding: 8bit
Plain Text
Line2
------- =_6M80yPWZSMRuPfyOccOhUw==
MIME-Version: 1.0
Content-ID: <30261.1428705114.2@cleaf1.mydomain.org>
Content-Type: text/html;
charset="utf-8"
Content-Transfer-Encoding: 8bit
html
line2
------- =_6M80yPWZSMRuPfyOccOhUw==
MIME-Version: 1.0
Content-ID: <30261.1428705114.3@cleaf1.mydomain.org>
Content-Type: text/calendar;method=request; charset="utf-8";
charset="utf-8"
Content-Transfer-Encoding: 8bit
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 15.0 MIMEDIR//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:REQUEST
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
ORGANIZER;CN=No Reply:mailto:NoReply@mydomain.org
ATTENDEE;CN='Todd';ROLE=REQ-PARTICIPANT;RSVP=FALSE:MAILTO:thorst2@mydomain.org
DTSTART:20150411T120000Z
DTEND:20150411T140000Z
LOCATION:
TRANSP:OPAQUE
SEQUENCE:0
UID:a526f058fba04a4067966986ce365080
DTSTAMP:20150410T223154Z
LAST-MODIFIED:20150410T223154Z
DESCRIPTION:Test Description
SUMMARY:Test Title
ATTACH;ENCODING=BASE64;VALUE=BINARY;X-FILENAME=DOC_FR_MD_in.20150317_154551
.idx.gz:H4sICE9oCFUCA0RPQ19GUl9NRF9pbi4yMDE1MDMxN18xNTQ1NTEuaWR4AO2Wz47bIB
DG732KeQTAhjhHYnBi1f8Wxqvd00pVL71sT5UqWX73QtbZQpJVWm9UbRVzwh/MxzBj/+RhqEsF
w6DaWpYNEBhh2PUbNwE/bfoaGCMs9c8wjk6yJo9ChnEKGcbXED99GfsQfOw0KInSr9u2N7nO26
YB1eZPhXmqFcwazqw15faqhkpb3FuR42POr2BZa6ApE4KQNedO6UzptuMjcMqId3T3LmqMw6y8
9xmjfkD49vzl+4/nr/tzisLqcGuUW6WbLe6AUk75QSsqubVAfhKSEcK8M0rUL33cmrbv/rZXDx
XizmipgoW5xTQaTant0dU/l507BHxtequNq8O9NmoD7JCyy/ikxi75qMpe8y5e5IJknE1i258R
7/LenHreYYunqkvo1MBie8ZAmjwW1QblptLvLd3/PnyXdZfvpDnqvTKl63WOFYgskP1rsMdDsH
n8NPwBmlIqErqg6QKaKEnF+jpocvDJkrfRJIhIbxVNhyqHaIp4dUBTJM5BU2SwoOljosl9Y2y9
oOkSmmhGVtdBE1utpv+is2ji7qybRdNU5QhNIa9e0RSKs9AUGixo+qBoYpTzBU2X0JQmnF4HTW
mSrNO30ZSsMnGzaJqqHKMp4NVvNAXiPDQFBgua/j2afgGbA8R2bBIAAA==
PRIORITY:5
TRANSP:FREE
X-MICROSOFT-CDO-BUSYSTATUS:FREE
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-DISALLOW-COUNTER:FALSE
X-MS-OLK-AUTOFILLLOCATION:TRUE
X-MS-OLK-CONFTYPE:0
CLASS:PUBLIC
END:VEVENT
END:VCALENDAR
------- =_6M80yPWZSMRuPfyOccOhUw==--
------- =_D0iKdgI+3r1IL2tYlWQ+zA==--
这是由 mime 库生成的,正如我所说,如果我作为附件发送,它会起作用。它只是在使用 text/calendar;method=REQUEST 并将其放置在替代视图中时不起作用
我怀疑它与我的 mime 消息(电子邮件)结构有关,或者它 headers
更新 1:
这是我的新代码,根据具有更扁平结构的建议。无论内容类型是否具有字符集以及是否具有内容传输,似乎都没有区别。电子邮件仍然收到,并显示 Accept/Tentative/Decline 按钮,但没有附件:
MIME-Version: 1.0
Content-ID: <12516.1428711300.1@cleaf1.mydomain.org>
Content-Type: text/calendar;
charset="utf-8"
Content-Transfer-Encoding: 8bit
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 15.0 MIMEDIR//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
DTSTART:20150411T120000Z
DTEND:20150411T140000Z
SEQUENCE:0
UID:54690bbc05124b2e7c4ad5d480025278
DTSTAMP:20150411T001500Z
LAST-MODIFIED:20150411T001500Z
DESCRIPTION:Test appointment body
SUMMARY:Test Title
ATTACH;ENCODING=BASE64;VALUE=BINARY;X-FILENAME=DOC_FR_MD_in.20150317_154551
.idx.gz:H4sICE9oCFUCA0RPQ19GUl9NRF9pbi4yMDE1MDMxN18xNTQ1NTEuaWR4AO2Wz47bIB
DG732KeQTAhjhHYnBi1f8Wxqvd00pVL71sT5UqWX73QtbZQpJVWm9UbRVzwh/MxzBj/+RhqEsF
w6DaWpYNEBhh2PUbNwE/bfoaGCMs9c8wjk6yJo9ChnEKGcbXED99GfsQfOw0KInSr9u2N7nO26
YB1eZPhXmqFcwazqw15faqhkpb3FuR42POr2BZa6ApE4KQNedO6UzptuMjcMqId3T3LmqMw6y8
9xmjfkD49vzl+4/nr/tzisLqcGuUW6WbLe6AUk75QSsqubVAfhKSEcK8M0rUL33cmrbv/rZXDx
XizmipgoW5xTQaTant0dU/l507BHxtequNq8O9NmoD7JCyy/ikxi75qMpe8y5e5IJknE1i258R
7/LenHreYYunqkvo1MBie8ZAmjwW1QblptLvLd3/PnyXdZfvpDnqvTKl63WOFYgskP1rsMdDsH
n8NPwBmlIqErqg6QKaKEnF+jpocvDJkrfRJIhIbxVNhyqHaIp4dUBTJM5BU2SwoOljosl9Y2y9
oOkSmmhGVtdBE1utpv+is2ji7qybRdNU5QhNIa9e0RSKs9AUGixo+qBoYpTzBU2X0JQmnF4HTW
mSrNO30ZSsMnGzaJqqHKMp4NVvNAXiPDQFBgua/j2afgGbA8R2bBIAAA==
END:VEVENT
END:VCALENDAR
更新 #2(解决方案)
我将回复标记为答案,因为它帮助我找到了解决方案。我已经 post 编辑了问题的解决方案,因为我仍然想感谢@DmitryStreblechenko 对我的帮助
这里是 tcl 代码:
#######################################################
# Initial Setup
#######################################################
#Import packages
package require uuid
package require mime
package require smtp
#Set up basic appointment template
set tmplICS "BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 15.0 MIMEDIR//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
DTSTART:@start
DTEND:@end
SEQUENCE:0
UID:@uid
DTSTAMP:@created
LAST-MODIFIED:@created
DESCRIPTION:Test appointment body
SUMMARY:@summary
END:VEVENT
END:VCALENDAR"
#######################################################
# Real Data
#######################################################
#Setup data for substitution
set uuid [string map {- ""} [uuid::uuid generate]]
#Now in utc
set created [clock format [clock seconds] -format {%Y%m%dT%H%M%SZ} -timezone :UTC]
#Get todays date at 8, then add a day, then convert to utc
set est [clock scan [clock format [clock seconds] -format {%Y%m%dT080000}]]
set est [clock add $est 1 day]
set utcStart [clock format $est -format {%Y%m%dT%H%M%SZ} -timezone :UTC ]
#Get todays date at 10, then add a day, then convert to utc
set est [clock scan [clock format [clock seconds] -format {%Y%m%dT100000}]]
set est [clock add $est 1 day]
set utcEnd [clock format $est -format {%Y%m%dT%H%M%SZ} -timezone :UTC ]
#######################################################
# Compile Data
#######################################################
#Fill in the template
set mapper ""
lappend mapper "@uid" $uuid
lappend mapper "@start" $utcStart
lappend mapper "@end" $utcEnd
lappend mapper "@created" $created
lappend mapper "@summary" "Test Title"
set appointment [string map $mapper $tmplICS]
#######################################################
# Set up the bodies
#######################################################
#set up text and meeting request bodies
set text [mime::initialize -canonical text/plain -string "hey"]
set html [mime::initialize -canonical text/html -string "<b>hey</b>"]
set token [mime::initialize -canonical "text/calendar;charset=\"utf-8\";method=REQUEST" -string $appointment]
#Set up container
set mimeBodies [mime::initialize -canonical multipart/alternative -parts [list $text $html $token]]
#######################################################
# Set up attachments
#######################################################
set att [mime::initialize -canonical "application/octet-stream; name=\"ReadMePlease.txt\"" \
-file "/qdxiprod/cis6.1/integrator/web/readme.txt" \
-header [list Content-Disposition "attachment"] ]
set att1 [mime::initialize -canonical "application/hmtl; name=\"DOC_FR_MD.html\"" \
-file "/qdxiprod/cis6.1/integrator/testhtmlFile.html" \
-header [list Content-Disposition "attachment"] ]
#######################################################
# Finish the setup
#######################################################
#Bodies and attachments
set mimeSum [mime::initialize -canonical multipart/mixed -parts [list $mimeBodies $att $att1]]
#Output what it looks like
echo [::mime::buildmessage $mimeSum]
#The sum of the mime package looks like this
#multipart/mixed
# multipart/alternative (holding the two forms of the body part)
# text/plain
# text/html
# text/calendar;method=REQUEST
# application/octet-stream (attachment #1)
# application/html (attachment #2)
#Send email
smtp::sendmessage $mimeSum -servers "smtp.mydomain.org" -header [list From "NoReply@mydomain.org"] -header [list To "myemail@mydomain.org"]
#Destroy mime package
mime::finalize $mimeSum
这是 mime 包:
MIME-Version: 1.0
Content-ID: <20418.1428888890.7@server1.mydomain.org>
Content-Type: multipart/mixed;
boundary="----- =_FoyUc668JaIKjlKQbXOmqQ=="
------- =_FoyUc668JaIKjlKQbXOmqQ==
MIME-Version: 1.0
Content-ID: <20418.1428888890.4@server1.mydomain.org>
Content-Type: multipart/alternative;
boundary="----- =_1trMjc6PUm3+p04m/SU8aA=="
------- =_1trMjc6PUm3+p04m/SU8aA==
MIME-Version: 1.0
Content-ID: <20418.1428888890.1@server1.mydomain.org>
Content-Type: text/plain
hey
------- =_1trMjc6PUm3+p04m/SU8aA==
MIME-Version: 1.0
Content-ID: <20418.1428888890.2@server1.mydomain.org>
Content-Type: text/html
hey
------- =_1trMjc6PUm3+p04m/SU8aA==
MIME-Version: 1.0
Content-ID: <20418.1428888890.3@server1.mydomain.org>
Content-Type: text/calendar;charset="utf-8";method=request
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 15.0 MIMEDIR//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
DTSTART:20150413T120000Z
DTEND:20150413T140000Z
SEQUENCE:0
UID:56b39b14ebb641ab7de716a62bed46aa
DTSTAMP:20150413T013450Z
LAST-MODIFIED:20150413T013450Z
DESCRIPTION:Test appointment body
SUMMARY:Test Title
END:VEVENT
END:VCALENDAR
------- =_1trMjc6PUm3+p04m/SU8aA==--
------- =_FoyUc668JaIKjlKQbXOmqQ==
MIME-Version: 1.0
Content-Disposition: attachment
Content-ID: <20418.1428888890.5@server1.mydomain.org>
Content-Type: application/octet-stream; name="readmeplease.txt"
Content-Transfer-Encoding: base64
MSAyNCBDdXN0b21pemUuZXhlLm1hbmlmZXN0
------- =_FoyUc668JaIKjlKQbXOmqQ==
MIME-Version: 1.0
Content-Disposition: attachment
Content-ID: <20418.1428888890.6@server1.mydomain.org>
Content-Type: application/hmtl; name="doc_fr_md.html"
Content-Transfer-Encoding: base64
MSAyNCBDdXN0b21pemUuZXhlLm1hbmlmZXN0
------- =_FoyUc668JaIKjlKQbXOmqQ==--
Outlook 要求会议请求 MIME 消息是一个单独的部分 - text/calendar。纯文本和 HTML 必须在 VEVENT 部分(分别为 DESCRIPTION 和 X-ALT-DESC)。附件也必须添加为 ATTACH 部分:
MIME-Version: 1.0
Subject: Test
Content-ID: <30261.1428705114.6@cleaf1.mydomain.org>
Content-Type: text/calendar
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 14.0 MIMEDIR//EN
VERSION:2.0
METHOD:PUBLISH
BEGIN:VEVENT
ATTACH;ENCODING=BASE64;VALUE=BINARY;X-FILENAME=test.txt:U3ViamVjdDoJRG1pdHJ
5IE9uZSBvbiBPbmUNCkxvY2F0aW9uOglQYXVsJ3MgT2ZmaWNlDQoNClN0YXJ0OglUdWUgMTIvN
C8yMDEyIDk6MzAgQU0NCkVuZDoJVHVlIDEyLzQvMjAxMiA5OjQ1IEFNDQoNClJlY3VycmVuY2U
6CVdlZWtseQ0KUmVjdXJyZW5jZSBQYXR0ZXJuOglPY2N1cnMgZXZlcnkgVHVlc2RheSBmcm9tI
Dk6MzAgQU0gdG8gOTo0NSBBTSBlZmZlY3RpdmUgMS8xNy8yMDEyLiAoVVRDLQ0KMDc6MDApIEF
yaXpvbmENCg0KTWVldGluZyBTdGF0dXM6CUFjY2VwdGVkDQoNCk9yZ2FuaXplcjoJWmVpbWV0L
CBQYXVsDQpSZXF1aXJlZCBBdHRlbmRlZXM6CVN0cmVibGVjaGVua28sIERtaXRyeQ0KDQoNCg=
=
DESCRIPTION:Test appointment body\n\n \n
X-ALT-DESC;FMTTYPE=text/html:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//E
N">\n<HTML>\n<HEAD>\n<META NAME="Generator" CONTENT="MS Exchange Server ve
rsion 14.02.5004.000">\n<TITLE></TITLE>\n</HEAD>\n<BODY>\n<!-- Converted f
rom text/rtf format -->\n\n<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Calib
ri">Test</FONT></SPAN><SPAN LANG="en-us"><B> <FONT FACE="Calibri">appointm
ent</FONT></B></SPAN><SPAN LANG="en-us"><FONT FACE="Calibri"> body</FONT><
/SPAN><SPAN LANG="en-us"></SPAN></P>\n\n<P DIR=LTR><SPAN LANG="en-us"></SP
AN><SPAN LANG="en-us"> \;</SPAN></P>\n\n</BODY>\n</HTML>
END:VEVENT
END:VCALENDAR
更新。当我从 Outlook 发送会议邀请时,Outlook 创建了以下 MIME 消息(为清楚起见,我删除了一些 headers)。
Return-Path: <xx@yy.com>
X-Original-To: xx@yy.com
Delivered-To: xx@yy.com
From: Dmitry Streblechenko < xx@yy.com>
To: "xx@yy.com" <xx@yy.com>
Subject: test with attachment
Thread-Topic: test with attachment
Thread-Index: AdB1Rk+XNqVZqNnURi+hrlBAI6rRFwAACvNA
Date: Sun, 12 Apr 2015 17:31:20 +0000
Message-ID: <CY1PR11MB05242BD9613D40DB120FCCA8B7F80@CY1PR11MB0524.namprd11.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
MIME-Version: 1.0
--_005_CY1PR11MB05242BD9613D40DB120FCCA8B7F80CY1PR11MB0524namp_
Content-Type: multipart/alternative;
boundary="_000_CY1PR11MB05242BD9613D40DB120FCCA8B7F80CY1PR11MB0524namp_"
--_000_CY1PR11MB05242BD9613D40DB120FCCA8B7F80CY1PR11MB0524namp_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Test body
--_000_CY1PR11MB05242BD9613D40DB120FCCA8B7F80CY1PR11MB0524namp_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<meta name=3D"Generator" content=3D"Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left:=
#800000 2px solid; } --></style>
</head>
<body>
<font face=3D"Calibri" size=3D"2"><span style=3D"font-size:11pt;">
<div>Test <b>body</b></div>
<div><font face=3D"Times New Roman"> </font></div>
<div><font face=3D"Times New Roman"> </font></div>
<div><font face=3D"Times New Roman"> </font></div>
</span></font>
</body>
</html>
--_000_CY1PR11MB05242BD9613D40DB120FCCA8B7F80CY1PR11MB0524namp_
Content-Type: text/calendar; charset="utf-8"; method=REQUEST
Content-Transfer-Encoding: base64
QkVHSU46VkNBTEVOREFSDQpNRVRIT0Q6UkVRVUVTVA0KUFJPRElEOk1pY3Jvc29mdCBFeGNoYW5n
ZSBTZXJ2ZXIgMjAxMA0KVkVSU0lPTjoyLjANCkJFR0lOOlZUSU1FWk9ORQ0KVFpJRDpVUyBNb3Vu
dGFpbiBTdGFuZGFyZCBUaW1lDQpCRUdJTjpTVEFOREFSRA0KRFRTVEFSVDoxNjAxMDEwMVQwMDAw
MDANClRaT0ZGU0VURlJPTTotMDcwMA0KVFpPRkZTRVRUTzotMDcwMA0KRU5EOlNUQU5EQVJEDQpC
RUdJTjpEQVlMSUdIVA0KRFRTVEFSVDoxNjAxMDEwMVQwMDAwMDANClRaT0ZGU0VURlJPTTotMDcw
MA0KVFpPRkZTRVRUTzotMDcwMA0KRU5EOkRBWUxJR0hUDQpFTkQ6VlRJTUVaT05FDQpCRUdJTjpW
RVZFTlQNCk9SR0FOSVpFUjtDTj1EbWl0cnkgU3RyZWJsZWNoZW5rbzpNQUlMVE86ZG1pdHJ5QGRp
Z2l0YWwudGVjaG5vbG9neQ0KQVRURU5ERUU7Uk9MRT1SRVEtUEFSVElDSVBBTlQ7UEFSVFNUQVQ9
TkVFRFMtQUNUSU9OO1JTVlA9VFJVRTtDTj1kbWl0cnlAZGltDQogYXN0ci5jb206TUFJTFRPOmRt
aXRyeUBkaW1hc3RyLmNvbQ0KQVRURU5ERUU7Uk9MRT1SRVEtUEFSVElDSVBBTlQ7UEFSVFNUQVQ9
TkVFRFMtQUNUSU9OO1JTVlA9VFJVRTtDTj1kbWl0cnkuc3RyDQogZWJsZWNoZW5rb0BpbmZvci5j
b206TUFJTFRPOmRtaXRyeS5zdHJlYmxlY2hlbmtvQGluZm9yLmNvbQ0KQVRUQUNIOkNJRDo4QkMw
MEUzRTQ5NkRDNDQ5OTAwMkVENzQ4OEY4RTA4NEBuYW1wcmQxMS5wcm9kLm91dGxvb2suY29tDQpE
RVNDUklQVElPTjtMQU5HVUFHRT1lbi1VUzpUZXN0IGJvZHlcblxuXG5cbg0KVUlEOjA0MDAwMDAw
ODIwMEUwMDA3NEM1QjcxMDFBODJFMDA4MDAwMDAwMDAzMERGNTFCMDBCNzVEMDAxMDAwMDAwMDAw
MDAwMDAwDQogMDEwMDAwMDAwRTYxNzM0RjNCQkZFNEY0MjhDRTMyMTZEQ0E5RTVBNDYNClNVTU1B
Ulk7TEFOR1VBR0U9ZW4tVVM6dGVzdCB3aXRoIGF0dGFjaG1lbnQNCkRUU1RBUlQ7VFpJRD1VUyBN
b3VudGFpbiBTdGFuZGFyZCBUaW1lOjIwMTUwNDE3VDExMDAwMA0KRFRFTkQ7VFpJRD1VUyBNb3Vu
dGFpbiBTdGFuZGFyZCBUaW1lOjIwMTUwNDE3VDExMzAwMA0KQ0xBU1M6UFVCTElDDQpQUklPUklU
WTo1DQpEVFNUQU1QOjIwMTUwNDEyVDE3MzExN1oNClRSQU5TUDpPUEFRVUUNClNUQVRVUzpDT05G
SVJNRUQNClNFUVVFTkNFOjANCkxPQ0FUSU9OO0xBTkdVQUdFPWVuLVVTOg0KWC1NSUNST1NPRlQt
Q0RPLUFQUFQtU0VRVUVOQ0U6MA0KWC1NSUNST1NPRlQtQ0RPLU9XTkVSQVBQVElEOi02MjIwNDkz
MTMNClgtTUlDUk9TT0ZULUNETy1CVVNZU1RBVFVTOlRFTlRBVElWRQ0KWC1NSUNST1NPRlQtQ0RP
LUlOVEVOREVEU1RBVFVTOkJVU1kNClgtTUlDUk9TT0ZULUNETy1BTExEQVlFVkVOVDpGQUxTRQ0K
WC1NSUNST1NPRlQtQ0RPLUlNUE9SVEFOQ0U6MQ0KWC1NSUNST1NPRlQtQ0RPLUlOU1RUWVBFOjAN
ClgtTUlDUk9TT0ZULURJU0FMTE9XLUNPVU5URVI6RkFMU0UNCkJFR0lOOlZBTEFSTQ0KREVTQ1JJ
UFRJT046UkVNSU5ERVINClRSSUdHRVI7UkVMQVRFRD1TVEFSVDotUFQxNU0NCkFDVElPTjpESVNQ
TEFZDQpFTkQ6VkFMQVJNDQpFTkQ6VkVWRU5UDQpFTkQ6VkNBTEVOREFSDQo=
--_000_CY1PR11MB05242BD9613D40DB120FCCA8B7F80CY1PR11MB0524namp_--
--_005_CY1PR11MB05242BD9613D40DB120FCCA8B7F80CY1PR11MB0524namp_
Content-Type: application/octet-stream; name="manifest.rc"
Content-Description: manifest.rc
Content-Disposition: attachment; filename="manifest.rc"; size=27;
creation-date="Sat, 24 Apr 2010 05:10:59 GMT";
modification-date="Tue, 30 Dec 2014 00:22:47 GMT"
Content-ID: <8BC00E3E496DC4499002ED7488F8E084@namprd11.prod.outlook.com>
Content-Transfer-Encoding: base64
MSAyNCBDdXN0b21pemUuZXhlLm1hbmlmZXN0
--_005_CY1PR11MB05242BD9613D40DB120FCCA8B7F80CY1PR11MB0524namp_--
我正在创建 text/calendar 类型的电子邮件。它有 3 个备用视图:文本、html,最后一个是会议邀请或 .ics。我不是附上ics,而是放在第三视图的内容中。
当我发送它时,outlook 2013 正确接收了邀请并在邮件顶部显示 Accept/Tentative/Decline 按钮。
然而,当我尝试将附件嵌入到 event/meeting 时,它根本不抓取它。
如果我将 ics 作为附件发送,它将嵌入附件,但是用户必须单击 .ics 文件而不是获取内联 Accept/Tentative/Decline。
我是用一种叫做 tcl 的脚本语言生成的。我正在使用 mime 和 smtp 库。我一直在引用 tcl、c#、php 和 java 实现,但似乎没有人记录过这个确切的场景。
如果需要,我可以 post 我的代码,但它非常无关紧要。相关的是正在构建的 MIME 消息。
如何将附件嵌入到 event/calendar 项目中?
MIME-Version: 1.0
Content-ID: <30261.1428705114.6@cleaf1.mydomain.org>
Content-Type: multipart/related;
boundary="----- =_D0iKdgI+3r1IL2tYlWQ+zA=="
------- =_D0iKdgI+3r1IL2tYlWQ+zA==
MIME-Version: 1.0
Content-ID: <30261.1428705114.4@cleaf1.mydomain.org>
Content-Type: multipart/alternative;
boundary="----- =_6M80yPWZSMRuPfyOccOhUw=="
------- =_6M80yPWZSMRuPfyOccOhUw==
MIME-Version: 1.0
Content-ID: <30261.1428705114.1@cleaf1.mydomain.org>
Content-Type: text/plain;
charset="utf-8"
Content-Transfer-Encoding: 8bit
Plain Text
Line2
------- =_6M80yPWZSMRuPfyOccOhUw==
MIME-Version: 1.0
Content-ID: <30261.1428705114.2@cleaf1.mydomain.org>
Content-Type: text/html;
charset="utf-8"
Content-Transfer-Encoding: 8bit
html
line2
------- =_6M80yPWZSMRuPfyOccOhUw==
MIME-Version: 1.0
Content-ID: <30261.1428705114.3@cleaf1.mydomain.org>
Content-Type: text/calendar;method=request; charset="utf-8";
charset="utf-8"
Content-Transfer-Encoding: 8bit
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 15.0 MIMEDIR//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:REQUEST
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
ORGANIZER;CN=No Reply:mailto:NoReply@mydomain.org
ATTENDEE;CN='Todd';ROLE=REQ-PARTICIPANT;RSVP=FALSE:MAILTO:thorst2@mydomain.org
DTSTART:20150411T120000Z
DTEND:20150411T140000Z
LOCATION:
TRANSP:OPAQUE
SEQUENCE:0
UID:a526f058fba04a4067966986ce365080
DTSTAMP:20150410T223154Z
LAST-MODIFIED:20150410T223154Z
DESCRIPTION:Test Description
SUMMARY:Test Title
ATTACH;ENCODING=BASE64;VALUE=BINARY;X-FILENAME=DOC_FR_MD_in.20150317_154551
.idx.gz:H4sICE9oCFUCA0RPQ19GUl9NRF9pbi4yMDE1MDMxN18xNTQ1NTEuaWR4AO2Wz47bIB
DG732KeQTAhjhHYnBi1f8Wxqvd00pVL71sT5UqWX73QtbZQpJVWm9UbRVzwh/MxzBj/+RhqEsF
w6DaWpYNEBhh2PUbNwE/bfoaGCMs9c8wjk6yJo9ChnEKGcbXED99GfsQfOw0KInSr9u2N7nO26
YB1eZPhXmqFcwazqw15faqhkpb3FuR42POr2BZa6ApE4KQNedO6UzptuMjcMqId3T3LmqMw6y8
9xmjfkD49vzl+4/nr/tzisLqcGuUW6WbLe6AUk75QSsqubVAfhKSEcK8M0rUL33cmrbv/rZXDx
XizmipgoW5xTQaTant0dU/l507BHxtequNq8O9NmoD7JCyy/ikxi75qMpe8y5e5IJknE1i258R
7/LenHreYYunqkvo1MBie8ZAmjwW1QblptLvLd3/PnyXdZfvpDnqvTKl63WOFYgskP1rsMdDsH
n8NPwBmlIqErqg6QKaKEnF+jpocvDJkrfRJIhIbxVNhyqHaIp4dUBTJM5BU2SwoOljosl9Y2y9
oOkSmmhGVtdBE1utpv+is2ji7qybRdNU5QhNIa9e0RSKs9AUGixo+qBoYpTzBU2X0JQmnF4HTW
mSrNO30ZSsMnGzaJqqHKMp4NVvNAXiPDQFBgua/j2afgGbA8R2bBIAAA==
PRIORITY:5
TRANSP:FREE
X-MICROSOFT-CDO-BUSYSTATUS:FREE
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-DISALLOW-COUNTER:FALSE
X-MS-OLK-AUTOFILLLOCATION:TRUE
X-MS-OLK-CONFTYPE:0
CLASS:PUBLIC
END:VEVENT
END:VCALENDAR
------- =_6M80yPWZSMRuPfyOccOhUw==--
------- =_D0iKdgI+3r1IL2tYlWQ+zA==--
这是由 mime 库生成的,正如我所说,如果我作为附件发送,它会起作用。它只是在使用 text/calendar;method=REQUEST 并将其放置在替代视图中时不起作用
我怀疑它与我的 mime 消息(电子邮件)结构有关,或者它 headers
更新 1:
这是我的新代码,根据具有更扁平结构的建议。无论内容类型是否具有字符集以及是否具有内容传输,似乎都没有区别。电子邮件仍然收到,并显示 Accept/Tentative/Decline 按钮,但没有附件:
MIME-Version: 1.0
Content-ID: <12516.1428711300.1@cleaf1.mydomain.org>
Content-Type: text/calendar;
charset="utf-8"
Content-Transfer-Encoding: 8bit
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 15.0 MIMEDIR//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
DTSTART:20150411T120000Z
DTEND:20150411T140000Z
SEQUENCE:0
UID:54690bbc05124b2e7c4ad5d480025278
DTSTAMP:20150411T001500Z
LAST-MODIFIED:20150411T001500Z
DESCRIPTION:Test appointment body
SUMMARY:Test Title
ATTACH;ENCODING=BASE64;VALUE=BINARY;X-FILENAME=DOC_FR_MD_in.20150317_154551
.idx.gz:H4sICE9oCFUCA0RPQ19GUl9NRF9pbi4yMDE1MDMxN18xNTQ1NTEuaWR4AO2Wz47bIB
DG732KeQTAhjhHYnBi1f8Wxqvd00pVL71sT5UqWX73QtbZQpJVWm9UbRVzwh/MxzBj/+RhqEsF
w6DaWpYNEBhh2PUbNwE/bfoaGCMs9c8wjk6yJo9ChnEKGcbXED99GfsQfOw0KInSr9u2N7nO26
YB1eZPhXmqFcwazqw15faqhkpb3FuR42POr2BZa6ApE4KQNedO6UzptuMjcMqId3T3LmqMw6y8
9xmjfkD49vzl+4/nr/tzisLqcGuUW6WbLe6AUk75QSsqubVAfhKSEcK8M0rUL33cmrbv/rZXDx
XizmipgoW5xTQaTant0dU/l507BHxtequNq8O9NmoD7JCyy/ikxi75qMpe8y5e5IJknE1i258R
7/LenHreYYunqkvo1MBie8ZAmjwW1QblptLvLd3/PnyXdZfvpDnqvTKl63WOFYgskP1rsMdDsH
n8NPwBmlIqErqg6QKaKEnF+jpocvDJkrfRJIhIbxVNhyqHaIp4dUBTJM5BU2SwoOljosl9Y2y9
oOkSmmhGVtdBE1utpv+is2ji7qybRdNU5QhNIa9e0RSKs9AUGixo+qBoYpTzBU2X0JQmnF4HTW
mSrNO30ZSsMnGzaJqqHKMp4NVvNAXiPDQFBgua/j2afgGbA8R2bBIAAA==
END:VEVENT
END:VCALENDAR
更新 #2(解决方案)
我将回复标记为答案,因为它帮助我找到了解决方案。我已经 post 编辑了问题的解决方案,因为我仍然想感谢@DmitryStreblechenko 对我的帮助
这里是 tcl 代码:
#######################################################
# Initial Setup
#######################################################
#Import packages
package require uuid
package require mime
package require smtp
#Set up basic appointment template
set tmplICS "BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 15.0 MIMEDIR//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
DTSTART:@start
DTEND:@end
SEQUENCE:0
UID:@uid
DTSTAMP:@created
LAST-MODIFIED:@created
DESCRIPTION:Test appointment body
SUMMARY:@summary
END:VEVENT
END:VCALENDAR"
#######################################################
# Real Data
#######################################################
#Setup data for substitution
set uuid [string map {- ""} [uuid::uuid generate]]
#Now in utc
set created [clock format [clock seconds] -format {%Y%m%dT%H%M%SZ} -timezone :UTC]
#Get todays date at 8, then add a day, then convert to utc
set est [clock scan [clock format [clock seconds] -format {%Y%m%dT080000}]]
set est [clock add $est 1 day]
set utcStart [clock format $est -format {%Y%m%dT%H%M%SZ} -timezone :UTC ]
#Get todays date at 10, then add a day, then convert to utc
set est [clock scan [clock format [clock seconds] -format {%Y%m%dT100000}]]
set est [clock add $est 1 day]
set utcEnd [clock format $est -format {%Y%m%dT%H%M%SZ} -timezone :UTC ]
#######################################################
# Compile Data
#######################################################
#Fill in the template
set mapper ""
lappend mapper "@uid" $uuid
lappend mapper "@start" $utcStart
lappend mapper "@end" $utcEnd
lappend mapper "@created" $created
lappend mapper "@summary" "Test Title"
set appointment [string map $mapper $tmplICS]
#######################################################
# Set up the bodies
#######################################################
#set up text and meeting request bodies
set text [mime::initialize -canonical text/plain -string "hey"]
set html [mime::initialize -canonical text/html -string "<b>hey</b>"]
set token [mime::initialize -canonical "text/calendar;charset=\"utf-8\";method=REQUEST" -string $appointment]
#Set up container
set mimeBodies [mime::initialize -canonical multipart/alternative -parts [list $text $html $token]]
#######################################################
# Set up attachments
#######################################################
set att [mime::initialize -canonical "application/octet-stream; name=\"ReadMePlease.txt\"" \
-file "/qdxiprod/cis6.1/integrator/web/readme.txt" \
-header [list Content-Disposition "attachment"] ]
set att1 [mime::initialize -canonical "application/hmtl; name=\"DOC_FR_MD.html\"" \
-file "/qdxiprod/cis6.1/integrator/testhtmlFile.html" \
-header [list Content-Disposition "attachment"] ]
#######################################################
# Finish the setup
#######################################################
#Bodies and attachments
set mimeSum [mime::initialize -canonical multipart/mixed -parts [list $mimeBodies $att $att1]]
#Output what it looks like
echo [::mime::buildmessage $mimeSum]
#The sum of the mime package looks like this
#multipart/mixed
# multipart/alternative (holding the two forms of the body part)
# text/plain
# text/html
# text/calendar;method=REQUEST
# application/octet-stream (attachment #1)
# application/html (attachment #2)
#Send email
smtp::sendmessage $mimeSum -servers "smtp.mydomain.org" -header [list From "NoReply@mydomain.org"] -header [list To "myemail@mydomain.org"]
#Destroy mime package
mime::finalize $mimeSum
这是 mime 包:
MIME-Version: 1.0
Content-ID: <20418.1428888890.7@server1.mydomain.org>
Content-Type: multipart/mixed;
boundary="----- =_FoyUc668JaIKjlKQbXOmqQ=="
------- =_FoyUc668JaIKjlKQbXOmqQ==
MIME-Version: 1.0
Content-ID: <20418.1428888890.4@server1.mydomain.org>
Content-Type: multipart/alternative;
boundary="----- =_1trMjc6PUm3+p04m/SU8aA=="
------- =_1trMjc6PUm3+p04m/SU8aA==
MIME-Version: 1.0
Content-ID: <20418.1428888890.1@server1.mydomain.org>
Content-Type: text/plain
hey
------- =_1trMjc6PUm3+p04m/SU8aA==
MIME-Version: 1.0
Content-ID: <20418.1428888890.2@server1.mydomain.org>
Content-Type: text/html
hey
------- =_1trMjc6PUm3+p04m/SU8aA==
MIME-Version: 1.0
Content-ID: <20418.1428888890.3@server1.mydomain.org>
Content-Type: text/calendar;charset="utf-8";method=request
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 15.0 MIMEDIR//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
DTSTART:20150413T120000Z
DTEND:20150413T140000Z
SEQUENCE:0
UID:56b39b14ebb641ab7de716a62bed46aa
DTSTAMP:20150413T013450Z
LAST-MODIFIED:20150413T013450Z
DESCRIPTION:Test appointment body
SUMMARY:Test Title
END:VEVENT
END:VCALENDAR
------- =_1trMjc6PUm3+p04m/SU8aA==--
------- =_FoyUc668JaIKjlKQbXOmqQ==
MIME-Version: 1.0
Content-Disposition: attachment
Content-ID: <20418.1428888890.5@server1.mydomain.org>
Content-Type: application/octet-stream; name="readmeplease.txt"
Content-Transfer-Encoding: base64
MSAyNCBDdXN0b21pemUuZXhlLm1hbmlmZXN0
------- =_FoyUc668JaIKjlKQbXOmqQ==
MIME-Version: 1.0
Content-Disposition: attachment
Content-ID: <20418.1428888890.6@server1.mydomain.org>
Content-Type: application/hmtl; name="doc_fr_md.html"
Content-Transfer-Encoding: base64
MSAyNCBDdXN0b21pemUuZXhlLm1hbmlmZXN0
------- =_FoyUc668JaIKjlKQbXOmqQ==--
Outlook 要求会议请求 MIME 消息是一个单独的部分 - text/calendar。纯文本和 HTML 必须在 VEVENT 部分(分别为 DESCRIPTION 和 X-ALT-DESC)。附件也必须添加为 ATTACH 部分:
MIME-Version: 1.0
Subject: Test
Content-ID: <30261.1428705114.6@cleaf1.mydomain.org>
Content-Type: text/calendar
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 14.0 MIMEDIR//EN
VERSION:2.0
METHOD:PUBLISH
BEGIN:VEVENT
ATTACH;ENCODING=BASE64;VALUE=BINARY;X-FILENAME=test.txt:U3ViamVjdDoJRG1pdHJ
5IE9uZSBvbiBPbmUNCkxvY2F0aW9uOglQYXVsJ3MgT2ZmaWNlDQoNClN0YXJ0OglUdWUgMTIvN
C8yMDEyIDk6MzAgQU0NCkVuZDoJVHVlIDEyLzQvMjAxMiA5OjQ1IEFNDQoNClJlY3VycmVuY2U
6CVdlZWtseQ0KUmVjdXJyZW5jZSBQYXR0ZXJuOglPY2N1cnMgZXZlcnkgVHVlc2RheSBmcm9tI
Dk6MzAgQU0gdG8gOTo0NSBBTSBlZmZlY3RpdmUgMS8xNy8yMDEyLiAoVVRDLQ0KMDc6MDApIEF
yaXpvbmENCg0KTWVldGluZyBTdGF0dXM6CUFjY2VwdGVkDQoNCk9yZ2FuaXplcjoJWmVpbWV0L
CBQYXVsDQpSZXF1aXJlZCBBdHRlbmRlZXM6CVN0cmVibGVjaGVua28sIERtaXRyeQ0KDQoNCg=
=
DESCRIPTION:Test appointment body\n\n \n
X-ALT-DESC;FMTTYPE=text/html:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//E
N">\n<HTML>\n<HEAD>\n<META NAME="Generator" CONTENT="MS Exchange Server ve
rsion 14.02.5004.000">\n<TITLE></TITLE>\n</HEAD>\n<BODY>\n<!-- Converted f
rom text/rtf format -->\n\n<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Calib
ri">Test</FONT></SPAN><SPAN LANG="en-us"><B> <FONT FACE="Calibri">appointm
ent</FONT></B></SPAN><SPAN LANG="en-us"><FONT FACE="Calibri"> body</FONT><
/SPAN><SPAN LANG="en-us"></SPAN></P>\n\n<P DIR=LTR><SPAN LANG="en-us"></SP
AN><SPAN LANG="en-us"> \;</SPAN></P>\n\n</BODY>\n</HTML>
END:VEVENT
END:VCALENDAR
更新。当我从 Outlook 发送会议邀请时,Outlook 创建了以下 MIME 消息(为清楚起见,我删除了一些 headers)。
Return-Path: <xx@yy.com>
X-Original-To: xx@yy.com
Delivered-To: xx@yy.com
From: Dmitry Streblechenko < xx@yy.com>
To: "xx@yy.com" <xx@yy.com>
Subject: test with attachment
Thread-Topic: test with attachment
Thread-Index: AdB1Rk+XNqVZqNnURi+hrlBAI6rRFwAACvNA
Date: Sun, 12 Apr 2015 17:31:20 +0000
Message-ID: <CY1PR11MB05242BD9613D40DB120FCCA8B7F80@CY1PR11MB0524.namprd11.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
MIME-Version: 1.0
--_005_CY1PR11MB05242BD9613D40DB120FCCA8B7F80CY1PR11MB0524namp_
Content-Type: multipart/alternative;
boundary="_000_CY1PR11MB05242BD9613D40DB120FCCA8B7F80CY1PR11MB0524namp_"
--_000_CY1PR11MB05242BD9613D40DB120FCCA8B7F80CY1PR11MB0524namp_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Test body
--_000_CY1PR11MB05242BD9613D40DB120FCCA8B7F80CY1PR11MB0524namp_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<meta name=3D"Generator" content=3D"Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left:=
#800000 2px solid; } --></style>
</head>
<body>
<font face=3D"Calibri" size=3D"2"><span style=3D"font-size:11pt;">
<div>Test <b>body</b></div>
<div><font face=3D"Times New Roman"> </font></div>
<div><font face=3D"Times New Roman"> </font></div>
<div><font face=3D"Times New Roman"> </font></div>
</span></font>
</body>
</html>
--_000_CY1PR11MB05242BD9613D40DB120FCCA8B7F80CY1PR11MB0524namp_
Content-Type: text/calendar; charset="utf-8"; method=REQUEST
Content-Transfer-Encoding: base64
QkVHSU46VkNBTEVOREFSDQpNRVRIT0Q6UkVRVUVTVA0KUFJPRElEOk1pY3Jvc29mdCBFeGNoYW5n
ZSBTZXJ2ZXIgMjAxMA0KVkVSU0lPTjoyLjANCkJFR0lOOlZUSU1FWk9ORQ0KVFpJRDpVUyBNb3Vu
dGFpbiBTdGFuZGFyZCBUaW1lDQpCRUdJTjpTVEFOREFSRA0KRFRTVEFSVDoxNjAxMDEwMVQwMDAw
MDANClRaT0ZGU0VURlJPTTotMDcwMA0KVFpPRkZTRVRUTzotMDcwMA0KRU5EOlNUQU5EQVJEDQpC
RUdJTjpEQVlMSUdIVA0KRFRTVEFSVDoxNjAxMDEwMVQwMDAwMDANClRaT0ZGU0VURlJPTTotMDcw
MA0KVFpPRkZTRVRUTzotMDcwMA0KRU5EOkRBWUxJR0hUDQpFTkQ6VlRJTUVaT05FDQpCRUdJTjpW
RVZFTlQNCk9SR0FOSVpFUjtDTj1EbWl0cnkgU3RyZWJsZWNoZW5rbzpNQUlMVE86ZG1pdHJ5QGRp
Z2l0YWwudGVjaG5vbG9neQ0KQVRURU5ERUU7Uk9MRT1SRVEtUEFSVElDSVBBTlQ7UEFSVFNUQVQ9
TkVFRFMtQUNUSU9OO1JTVlA9VFJVRTtDTj1kbWl0cnlAZGltDQogYXN0ci5jb206TUFJTFRPOmRt
aXRyeUBkaW1hc3RyLmNvbQ0KQVRURU5ERUU7Uk9MRT1SRVEtUEFSVElDSVBBTlQ7UEFSVFNUQVQ9
TkVFRFMtQUNUSU9OO1JTVlA9VFJVRTtDTj1kbWl0cnkuc3RyDQogZWJsZWNoZW5rb0BpbmZvci5j
b206TUFJTFRPOmRtaXRyeS5zdHJlYmxlY2hlbmtvQGluZm9yLmNvbQ0KQVRUQUNIOkNJRDo4QkMw
MEUzRTQ5NkRDNDQ5OTAwMkVENzQ4OEY4RTA4NEBuYW1wcmQxMS5wcm9kLm91dGxvb2suY29tDQpE
RVNDUklQVElPTjtMQU5HVUFHRT1lbi1VUzpUZXN0IGJvZHlcblxuXG5cbg0KVUlEOjA0MDAwMDAw
ODIwMEUwMDA3NEM1QjcxMDFBODJFMDA4MDAwMDAwMDAzMERGNTFCMDBCNzVEMDAxMDAwMDAwMDAw
MDAwMDAwDQogMDEwMDAwMDAwRTYxNzM0RjNCQkZFNEY0MjhDRTMyMTZEQ0E5RTVBNDYNClNVTU1B
Ulk7TEFOR1VBR0U9ZW4tVVM6dGVzdCB3aXRoIGF0dGFjaG1lbnQNCkRUU1RBUlQ7VFpJRD1VUyBN
b3VudGFpbiBTdGFuZGFyZCBUaW1lOjIwMTUwNDE3VDExMDAwMA0KRFRFTkQ7VFpJRD1VUyBNb3Vu
dGFpbiBTdGFuZGFyZCBUaW1lOjIwMTUwNDE3VDExMzAwMA0KQ0xBU1M6UFVCTElDDQpQUklPUklU
WTo1DQpEVFNUQU1QOjIwMTUwNDEyVDE3MzExN1oNClRSQU5TUDpPUEFRVUUNClNUQVRVUzpDT05G
SVJNRUQNClNFUVVFTkNFOjANCkxPQ0FUSU9OO0xBTkdVQUdFPWVuLVVTOg0KWC1NSUNST1NPRlQt
Q0RPLUFQUFQtU0VRVUVOQ0U6MA0KWC1NSUNST1NPRlQtQ0RPLU9XTkVSQVBQVElEOi02MjIwNDkz
MTMNClgtTUlDUk9TT0ZULUNETy1CVVNZU1RBVFVTOlRFTlRBVElWRQ0KWC1NSUNST1NPRlQtQ0RP
LUlOVEVOREVEU1RBVFVTOkJVU1kNClgtTUlDUk9TT0ZULUNETy1BTExEQVlFVkVOVDpGQUxTRQ0K
WC1NSUNST1NPRlQtQ0RPLUlNUE9SVEFOQ0U6MQ0KWC1NSUNST1NPRlQtQ0RPLUlOU1RUWVBFOjAN
ClgtTUlDUk9TT0ZULURJU0FMTE9XLUNPVU5URVI6RkFMU0UNCkJFR0lOOlZBTEFSTQ0KREVTQ1JJ
UFRJT046UkVNSU5ERVINClRSSUdHRVI7UkVMQVRFRD1TVEFSVDotUFQxNU0NCkFDVElPTjpESVNQ
TEFZDQpFTkQ6VkFMQVJNDQpFTkQ6VkVWRU5UDQpFTkQ6VkNBTEVOREFSDQo=
--_000_CY1PR11MB05242BD9613D40DB120FCCA8B7F80CY1PR11MB0524namp_--
--_005_CY1PR11MB05242BD9613D40DB120FCCA8B7F80CY1PR11MB0524namp_
Content-Type: application/octet-stream; name="manifest.rc"
Content-Description: manifest.rc
Content-Disposition: attachment; filename="manifest.rc"; size=27;
creation-date="Sat, 24 Apr 2010 05:10:59 GMT";
modification-date="Tue, 30 Dec 2014 00:22:47 GMT"
Content-ID: <8BC00E3E496DC4499002ED7488F8E084@namprd11.prod.outlook.com>
Content-Transfer-Encoding: base64
MSAyNCBDdXN0b21pemUuZXhlLm1hbmlmZXN0
--_005_CY1PR11MB05242BD9613D40DB120FCCA8B7F80CY1PR11MB0524namp_--