iCal 附件中的 HTML

问题描述 投票:0回答:5

iCal 附件的描述属性中可以包含 HTML 吗?如果可以的话,有什么限制吗?

icalendar
5个回答
52
投票

经过一些研究和测试后。答案是肯定的。意思是:你可以把它扔在那里,但你不应该。

RFC 并未严格禁止,但描述不是 HTML 内容的适当属性。

描述应该是内容的纯文本版本。具有 text/html FMTTYPE 声明的属性 X-ALT-DESC 是 HTML 内容的适当属性。

以下示例在 Outlook 和 Gmail/Google 日历中均有效,但 Thunderbird(w/Lightning)似乎不支持:(请原谅输出。它是由 Outlook 生成的)

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 08.00.0681.000">\n<TITLE></TITLE>\n</HEAD>\n<BODY>\n<!-- Converted f
    rom text/rtf format -->\n\n<P DIR=LTR><SPAN LANG="en-us"></SPAN><SPAN LANG
    ="en-us"><FONT FACE="Calibri">Is this in HTML?</FONT></SPAN><SPAN LANG="en
    -us"></SPAN><SPAN LANG="en-us"></SPAN></P>\n\n<P DIR=LTR><SPAN LANG="en-us
    "><FONT FACE="Calibri">Bullets:</FONT></SPAN></P>\n\n<P DIR=LTR><SPAN LANG
    ="en-us"><FONT FACE="Calibri">1.&nbsp\;&nbsp\;&nbsp\;&nbsp\;&nbsp\;</FONT>
    </SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-
    us"></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT FACE="Calib
    ri">Test 1</FONT></SPAN></P>\n\n<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="
    Calibri">2.&nbsp\;&nbsp\;&nbsp\;&nbsp\;&nbsp\;</FONT></SPAN><SPAN LANG="en
    -us"> <FONT FACE="Calibri">Test 2</FONT></SPAN><SPAN LANG="en-us"></SPAN><
    SPAN LANG="en-us"></SPAN></P>\n\n<P DIR=LTR><SPAN LANG="en-us"></SPAN><SPA
    N LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN></P>\n\n</BODY>\n</HTML>

与电子邮件客户端中的任何 HTML 渲染一样,支持的标签和样式是有限的。


2
投票

描述中的 HTML 至少不会在 Outlook 中呈现为 HTML。如果您想要包含 Outlook 可以识别的富文本,请从 Outlook 日历中导出事件,并查看它们的作用。我相信他们在描述中提供纯文本,然后为 HTML 创建另一个属性。


1
投票

对于像我一样访问此页面并希望专门为 Outlook 事件显示 HTML 内容的人...

正如已接受的答案所述,描述不应包含任何 HTML。但是,您可以使用多部分/替代电子邮件将 HTML 纳入活动内容(至少在 Outlook 中)。

MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="_CAL_B598a1969806776.58663423_B_"
To: "Your Name" <[email protected]>
From: "John Doe" <[email protected]>

--_CAL_B598a1969806776.58663423_B_
Content-Type: text/html; charset="iso - 8859 - 1"
Content-Transfer-Encoding: quoted-printable

<html><body>
<h1>Hello World</h1>
<p>This is a calendar event test</p>
</body></html>

--_CAL_B598a1969806776.58663423_B_
Content-Type: text/calendar; charset="utf - 8"; method=REQUEST
Content-Transfer-Encoding: base64

QkVHSU46VkNBTEVOREFSDQpNRVRIT0Q6UkVRVUVTVA0KUFJPRElEOi0vL1BIUC8vTWVl
dGluZ1JlcXVlc3QvL0VODQpWRVJTSU9OOjIuMA0KQkVHSU46VkVWRU5UDQpPUkdBTkla
RVI7Q049Sm9obiBEb2U6TUFJTFRPOmpvaG4uZG9lQGV4YW1wbGUuY29tDQpBVFRFTkRF
RTtST0xFPVJFUS1QQVJUSUNJUEFOVDtQQVJUU1RBVD1ORUVEUy1BQ1RJT047UlNWUD1U
UlVFO0NOPVlvdXIgTmFtZTpNQUlMVE86eW91cm5hbWVAZXhhbXBsZS5jb20NCkRFU0NS
SVBUSU9OOkhlbGxvIFdvcmxkIEV2ZW50DQpTVU1NQVJZOkhlbGxvIFdvcmxkIEV2ZW50
DQpEVFNUQVJUOjIwMTcwODE1VDE5MDAwMFoNCkRURU5EOjIwMTcwODE1VDIwMDAwMFoN
ClVJRDowMTIzNDU2Nzg5DQpDTEFTUzpQVUJMSUMNClBSSU9SSVRZOjUNCkRUU1RBTVA6
MjAxNzA4MDhUMjAwNDU3Wg0KVFJBTlNQOk9QQVFVRQ0KU1RBVFVTOkNPTkZJUk1FRA0K
U0VRVUVOQ0U6MA0KTE9DQVRJT046MTIzIEFueSBTdHJlZXQNCkJFR0lOOlZBTEFSTQ0K
QUNUSU9OOkRJU1BMQVkNCkRFU0NSSVBUSU9OOlJFTUlOREVSDQpUUklHR0VSO1JFTEFU
RUQ9U1RBUlQ6LVBUMTVNDQpFTkQ6VkFMQVJNDQpFTkQ6VkVWRU5UDQpFTkQ6VkNBTEVO
REFS

--_CAL_B598a1969806776.58663423_B_--

如果您想知道,Base64 编码会转换为:

BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:-//PHP//MeetingRequest//EN
VERSION:2.0
BEGIN:VEVENT
ORGANIZER;CN=John Doe:MAILTO:[email protected]
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Your Name:MAILTO:[email protected]
DESCRIPTION:Hello World Event
SUMMARY:Hello World Event
DTSTART:20170815T190000Z
DTEND:20170815T200000Z
UID:0123456789
CLASS:PUBLIC
PRIORITY:5
DTSTAMP:20170808T200457Z
TRANSP:OPAQUE
STATUS:CONFIRMED
SEQUENCE:0
LOCATION:123 Any Street
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:REMINDER
TRIGGER;RELATED=START:-PT15M
END:VALARM
END:VEVENT
END:VCALENDAR

0
投票

根据 RFC,我认为这是可能的,但我怀疑这是一个好主意,因为它似乎有点安全漏洞。


0
投票

我刚刚看到 Google 日历导出,似乎描述只是被标记为 html。但我不知道这在多大程度上被正确解释:

X-MOZ-GOOGLE-HTML-DESCRIPTION:true
DESCRIPTION:foo<br><p>bar</p>...
© www.soinside.com 2019 - 2024. All rights reserved.