【问题标题】:iCalendar invite is not showing RSVP buttons in email clientsiCalendar 邀请未在电子邮件客户端中显示 RSVP 按钮
【发布时间】:2014-01-29 15:08:15
【问题描述】:

我正在使用 PHPMailer 发送电子邮件。我的 ics 内容是:

BEGIN:VCALENDAR
METHOD:REQUEST
VERSION:2.0
PRODID:-//FooBar//FooBar Calendar//EN
BEGIN:VEVENT
UID:8f5a0777-bf6d-17d2-f14a-52e7feedf810
ORGANIZER;CN=Foo:foo@bar.com
DTSTART:20140130T191500Z
DTEND:20140130T194500Z
DTSTAMP:20140129T144300Z
SUMMARY:Foo Bar 11
DESCRIPTION:
END:VEVENT
END:VCALENDAR

由于某种原因,我在任何电子邮件客户端中都看不到预期的 RSVP 按钮。 Gmail 和 Mac Mail 都只是将 ics 作为文件附件包含在内,我认为这是一种后备。所以肯定有什么问题。我没有尝试过 Outlook,但我看不出它在第三个客户端中会有所不同的任何原因。正在发送的电子邮件的内容如下。你能看到任何看起来不正确的东西吗?谢谢。

Return-Path: REDACTED
Received: REDACTED
Date: Wed, 29 Jan 2014 09:43:18 -0500
Return-Path: REDACTED
To: REDACTED
From: REDACTED
Reply-To: REDACTED
Subject: Meeting - Foo Bar 11
Message-ID: <7004961cd9df04181047296f98260834@localhost>
X-Priority: 3
X-Mailer: PHPMailer 5.2.7 (https://github.com/PHPMailer/PHPMailer/)
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="b1_7004961cd9df04181047296f98260834"
Content-Transfer-Encoding: base64

--b1_7004961cd9df04181047296f98260834
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: base64

VG86IEZvbyBCYXINCg0KDQpBZG1pbmlzdHJhdG9yIGhhcyBpbnZpdGVkIHlvdSB0byBhIE1lZXRpbmcNCg0KDQpTdWJqZWN0OiBGb28gQmFyIDExDQoNClN0YXJ0IERhdGU6IDAxLzMwLzIwMTQgMDI6MTVwbSBFU1QoLTA1OjAwKQ0KDQpFbmQgRGF0ZTogMDEvMzAvMjAxNCAwMjo0NXBtIEVTVCgtMDU6MDApDQoNCg0KRGVzY3JpcHRpb246IA0KDQoNCkFjY2VwdCB0aGlzIG1lZXRpbmc6DQoNCmh0dHA6Ly9sb2NhbGhvc3Q6ODg4OC9pbmRleC5waHA/ZW50cnlQb2ludD1hY2NlcHREZWNsaW5lJm1vZHVsZT1NZWV0aW5ncyZ1c2VyX2lkPTEmcmVjb3JkPThmNWEwNzc3LWJmNmQtMTdkMi1mMTRhLTUyZTdmZWVkZjgxMCZhY2NlcHRfc3RhdHVzPWFjY2VwdA0KDQoNClRlbnRhdGl2ZWx5IEFjY2VwdCB0aGlzIG1lZXRpbmcNCg0KaHR0cDovL2xvY2FsaG9zdDo4ODg4L2luZGV4LnBocD9lbnRyeVBvaW50PWFjY2VwdERlY2xpbmUmbW9kdWxlPU1lZXRpbmdzJnVzZXJfaWQ9MSZyZWNvcmQ9OGY1YTA3NzctYmY2ZC0xN2QyLWYxNGEtNTJlN2ZlZWRmODEwJmFjY2VwdF9zdGF0dXM9dGVudGF0aXZlDQoNCg0KRGVjbGluZSB0aGlzIG1lZXRpbmcNCg0KaHR0cDovL2xvY2FsaG9zdDo4ODg4L2luZGV4LnBocD9lbnRyeVBvaW50PWFjY2VwdERlY2xpbmUmbW9kdWxlPU1lZXRpbmdzJnVzZXJfaWQ9MSZyZWNvcmQ9OGY1YTA3NzctYmY2ZC0xN2QyLWYxNGEtNTJlN2ZlZWRmODEwJmFjY2VwdF9zdGF0dXM9ZGVjbGluZQ0KDQo=


--b1_7004961cd9df04181047296f98260834
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: base64

PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIGxhbmc9J2VuX3VzJz4NCjxoZWFkPg0KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiIC8+DQo8dGl0bGU+DQpNZWV0aW5nIC0gRm9vIEJhciAxMQ0KPC90aXRsZT4NCjwvaGVhZD4NCjxib2R5Pg0KVG86IEFkbWluaXN0cmF0b3I8YnIgLz48YnIgLz4NCkFkbWluaXN0cmF0b3IgaGFzIGludml0ZWQgeW91IHRvIGEgTWVldGluZzxiciAvPjxiciAvPg0KU3ViamVjdDogRm9vIEJhciAxMTxiciAvPg0KU3RhcnQgRGF0ZTogMDEvMzAvMjAxNCAwMjoxNXBtIEVTVCgtMDU6MDApPGJyIC8+DQpFbmQgRGF0ZTogMDEvMzAvMjAxNCAwMjo0NXBtIEVTVCgtMDU6MDApPGJyIC8+DQoNCkRlc2NyaXB0aW9uOiA8YnIgLz48YnIgLz4NCkFjY2VwdCB0aGlzIG1lZXRpbmc6PGJyIC8+DQo8YSBocmVmPSJodHRwOi8vbG9jYWxob3N0Ojg4ODgvaW5kZXgucGhwP2VudHJ5UG9pbnQ9YWNjZXB0RGVjbGluZSZtb2R1bGU9TWVldGluZ3MmdXNlcl9pZD0xJnJlY29yZD04ZjVhMDc3Ny1iZjZkLTE3ZDItZjE0YS01MmU3ZmVlZGY4MTAmYWNjZXB0X3N0YXR1cz1hY2NlcHQiPmh0dHA6Ly9sb2NhbGhvc3Q6ODg4OC9pbmRleC5waHA/ZW50cnlQb2ludD1hY2NlcHREZWNsaW5lJm1vZHVsZT1NZWV0aW5ncyZ1c2VyX2lkPTEmcmVjb3JkPThmNWEwNzc3LWJmNmQtMTdkMi1mMTRhLTUyZTdmZWVkZjgxMCZhY2NlcHRfc3RhdHVzPWFjY2VwdDwvYT48YnIgLz48YnIgLz4NClRlbnRhdGl2ZWx5IEFjY2VwdCB0aGlzIG1lZXRpbmc8YnIgLz4NCjxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODg4OC9pbmRleC5waHA/ZW50cnlQb2ludD1hY2NlcHREZWNsaW5lJm1vZHVsZT1NZWV0aW5ncyZ1c2VyX2lkPTEmcmVjb3JkPThmNWEwNzc3LWJmNmQtMTdkMi1mMTRhLTUyZTdmZWVkZjgxMCZhY2NlcHRfc3RhdHVzPXRlbnRhdGl2ZSI+aHR0cDovL2xvY2FsaG9zdDo4ODg4L2luZGV4LnBocD9lbnRyeVBvaW50PWFjY2VwdERlY2xpbmUmbW9kdWxlPU1lZXRpbmdzJnVzZXJfaWQ9MSZyZWNvcmQ9OGY1YTA3NzctYmY2ZC0xN2QyLWYxNGEtNTJlN2ZlZWRmODEwJmFjY2VwdF9zdGF0dXM9dGVudGF0aXZlPC9hPjxiciAvPjxiciAvPg0KRGVjbGluZSB0aGlzIG1lZXRpbmc8YnIgLz4NCjxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODg4OC9pbmRleC5waHA/ZW50cnlQb2ludD1hY2NlcHREZWNsaW5lJm1vZHVsZT1NZWV0aW5ncyZ1c2VyX2lkPTEmcmVjb3JkPThmNWEwNzc3LWJmNmQtMTdkMi1mMTRhLTUyZTdmZWVkZjgxMCZhY2NlcHRfc3RhdHVzPWRlY2xpbmUiPmh0dHA6Ly9sb2NhbGhvc3Q6ODg4OC9pbmRleC5waHA/ZW50cnlQb2ludD1hY2NlcHREZWNsaW5lJm1vZHVsZT1NZWV0aW5ncyZ1c2VyX2lkPTEmcmVjb3JkPThmNWEwNzc3LWJmNmQtMTdkMi1mMTRhLTUyZTdmZWVkZjgxMCZhY2NlcHRfc3RhdHVzPWRlY2xpbmU8L2E+PGJyIC8+PGJyIC8+DQo8L2JvZHk+DQo8L2h0bWw+


--b1_7004961cd9df04181047296f98260834
Content-Type: text/calendar; method=REQUEST; charset=UTF-8
Content-Transfer-Encoding: base64

QkVHSU46VkNBTEVOREFSDQpNRVRIT0Q6UkVRVUVTVA0KVkVSU0lPTjoyLjANClBST0RJRDotLy9Gb29CYXIvL0Zvb0JhciBDYWxlbmRhci8vRU4NCkJFR0lOOlZFVkVOVA0KVUlEOjhmNWEwNzc3LWJmNmQtMTdkMi1mMTRhLTUyZTdmZWVkZjgxMA0KT1JHQU5JWkVSO0NOPUZvbzpmb29AYmFyLmNvbQ0KRFRTVEFSVDoyMDE0MDEzMFQxOTE1MDBaDQpEVEVORDoyMDE0MDEzMFQxOTQ1MDBaDQpEVFNUQU1QOjIwMTQwMTI5VDE0NDMwMFoNClNVTU1BUlk6Rm9vIEJhciAxMQ0KREVTQ1JJUFRJT046DQpFTkQ6VkVWRU5UDQpFTkQ6VkNBTEVOREFSDQo=



--b1_7004961cd9df04181047296f98260834--

附:很抱歉它是 base64 编码的。我想展示电子邮件的真实表示,而不是以任何可能扭曲结果的方式更改它。我只是使用http://www.base64decode.org/ 来解码内容。

【问题讨论】:

  • base64 内容显示为一个字符串,但电子邮件每行最多发送 1000 个字符。我只需要删除一些敏感信息,所以我不得不重新编码这些部分,从而消除了中断。
  • 您是否尝试将 RSVP=TRUE 添加到 ATTENDEE 字段?它不是 RFC6047 严格规定的,但请记住它对我有很大的影响。

标签: php email phpmailer icalendar


【解决方案1】:

不知道它是否能解决你的问题,但是:

就 MIME 结构而言,您似乎很关心 GMail,最好的办法是从 Google 日历生成一个非 Google 帐户的邀请,然后查看它生成的 MIME 结构。

【讨论】:

  • 添加mailto: 是一个关键。在我的示例中,我也缺少METHOD:REQUEST,但我在测试时使用了它。正是这两者的结合使它起作用。我确实需要按照您的建议添加 ATTENDEE 属性,但 RSVP 按钮不依赖于此。
  • 我说我错过了METHOD:REQUEST 参数,但我说错了。我经历了如此多的迭代,以至于我自己都糊涂了。这是添加mailto: 并保证所有换行符都是CRLF。
  • 有没有办法给出回复邮件地址,这样当一个人点击“yes,May be, No”选项时会收到回复邮件地址的通知??
猜你喜欢
  • 2018-04-01
  • 2018-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-18
  • 1970-01-01
  • 2017-03-17
  • 1970-01-01
相关资源
最近更新 更多