Outlook 2013 邀请未显示嵌入附件 - 文本/日历;方法 = 请求

Posted

技术标签:

【中文标题】Outlook 2013 邀请未显示嵌入附件 - 文本/日历;方法 = 请求【英文标题】:Outlook 2013 invite not showing embeded attachment - text/calendar;method=REQUEST 【发布时间】:2015-06-16 18:53:17 【问题描述】:

我正在创建一个文本/日历类型的电子邮件。它有 3 个备用视图:文本、html,最后一个是会议邀请或 .ics。我没有附加 ics,而是将其放在第三个视图的内容中。

当我发送它时,outlook 2013 会正确接收邀请并在消息顶部显示接受/暂定/拒绝按钮。

但是,当我尝试将附件嵌入到活动/会议中时,它根本无法抓取它。

如果我将 ics 作为附件发送,它将嵌入附件,但是用户必须单击 .ics 文件,而不是获得内联的 Accept/Tentative/Decline。

我用一种叫做 tcl 的脚本语言来生成这个。我正在使用 mime 和 smtp 库。我一直在参考 tcl、c#、php 和 java 实现,但似乎没有人记录过这个确切的场景。

如果需要,我可以发布我的代码,但它完全无关紧要。相关的是正在构建的 mime 消息。

如何将附件嵌入到事件/日历项目中?

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 消息(电子邮件)结构或其标题有关

更新 1:

这是我的新代码,建议采用更扁平的结构。无论内容类型是否具有字符集以及是否具有内容传输,似乎都没有区别。仍会收到电子邮件,并显示接受/暂定/拒绝按钮,但没有附件:

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(解决方案)

我将回复标记为答案,因为它帮助我找到了解决方案。我已经在问题中发布了解决方案,因为我仍然想感谢@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==--

【问题讨论】:

你必须创建一个multipart/mixed,它包含两个部分:multipart/alternative 和附件。 multipart/alternative 应该包含 text/htmltext/plain 可能还有 ics 部分。不确定最后一件事。 我认为您指的是仅发送 .ics 附件,或者可能发送带有接受/暂定/拒绝按钮的邀请请求。我在那里没有问题,我的电子邮件有效。不工作的是事件内的嵌入附件。请参阅 ATTACH 段。 我以为你想发送一封带有附件和 .ics 的电子邮件。 【参考方案1】:

Outlook 期望会议请求 MIME 消息是单个部分 - 文本/日历。纯文本和 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">&nbsp\;</SPAN></P>\n\n</BODY>\n</HTML>
    END:VEVENT
    END:VCALENDAR

更新。当我从 Outlook 发送会议邀请时,Outlook 创建了以下 MIME 消息(为清楚起见,我删除了一些标题)。

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">&nbsp;</font></div>
<div><font face=3D"Times New Roman"> </font></div>
<div><font face=3D"Times New Roman">&nbsp;</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_--

【讨论】:

我希望它是一个请求,而不是一个发布。这似乎也无效,因为它没有开始和结束时间,我不确定你是否把它留了简短......我已经用我认为你的建议更新了我的问题,但它仍然没有工作。 这只是一个显示DESCRIPTION、X-ALT-DESC和ATTACH部分的例子。 好吧,我就是这么想的。我仍然无法让它工作 - 我的最新版本在更新的问题中。 看来我错了,Outlook 本身发送了一个包含多部分/混合附件的邀请。 你读过那个,或者你有 mime 输出吗?我尝试发送混合但无法正常工作,我会再试一次......

以上是关于Outlook 2013 邀请未显示嵌入附件 - 文本/日历;方法 = 请求的主要内容,如果未能解决你的问题,请参考以下文章

仅保存 Outlook MailItem 的真实附件

通过 python 发送时附件不显示在 Outlook 中

Outlook 将图像显示为在邮件的 HTML 正文中引用的附件

逻辑应用和 Outlook 嵌入图像

是否可以像 Outlook RTF/TNEF 那样在 html 电子邮件中嵌入非图像附件?

无法在使用 python smtplib/email 发送的 Outlook 2013 电子邮件中显示嵌入图像