【问题标题】:Thunderbird+Lightning is rendering an ics invitation inappropriatelyThunderbird+Lightning 不恰当地呈现 ics 邀请
【发布时间】:2017-06-09 05:34:28
【问题描述】:

使用sabre/vobject 库我正在创建一个像这样的 ics 文件:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Sabre//Sabre VObject 4.1.2//EN
CALSCALE:GREGORIAN
BEGIN:VEVENT
UID:sabre-vobject-d4b1ccb3-2197-4ee4-aab8-7bc2516adbf8
DTSTAMP:20170123T182612Z
SUMMARY:testev2
DESCRIPTION:
DTSTART;TZID=Europe/Athens:20170214T090000
DTEND;TZID=Europe/Athens:20170215T170000
LOCATION:
ORGANIZER;CN=Organizer Name:mailto:organizer@example.com
ATTENDEE;CN=Test User:MAILTO:test.user@somewhere.com
END:VEVENT
END:VCALENDAR

然后使用phpmailer,我将生成的文件附加到电子邮件中,并将其发送给参与活动的用户。使用 Thunderbird(带有 Lightning 扩展程序 - 默认情况下启用)的用户会收到以下格式的电子邮件:

正如您在图片中看到的那样,ics 文件被解析并呈现在电子邮件底部的表格中。但是表头(以红色标记的)没有显示正确的信息。测试用户从未确认过他/她的存在,如果他/她确认过,ics 文件不会提供任何相关信息。

是不是我的ics文件格式错了?

这是雷鸟/闪电的已知错误吗?

更新 邮件的邮件头:

Return-Path: <XXXXXXXXXXXXXXXX>
Received: from deliver ([unix socket])
     by mail (Cyrus v2.3.16-Fedora-RPM-2.3.16-13.el6_6) with LMTPA;
     Tue, 24 Jan 2017 12:48:10 +0200
X-Sieve: CMU Sieve 2.3
Received: from [XXX.XXX.XXX.XXX] (XXXXXXXXXXXXXX [XXX.XXX.XXX.XXX
    (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits))
    (No client certificate requested)
    by XXXXXXXXXXXXXX (Postfix) with ESMTPSA id 6F18C1BE0305
    for <XXXXXXXXXXXXXX>; Tue, 24 Jan 2017 12:48:10 +0200 (EET)
Subject: Fwd: Event invitation: testev2
To: "XXXXXXXX" <XXXXXXXXXXXXXX>
From: XXXXXXXXXXXXXX <XXXXXXXXXXXXXX>
X-Forwarded-Message-Id:
Message-ID: <bac7749e-9699-1b50-9de5-27a510c663a4@XXXXXXXX>
Date: Tue, 24 Jan 2017 12:48:09 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
 Thunderbird/45.6.0
MIME-Version: 1.0
Content-Type: multipart/mixed;
 boundary="------------79DD2A1D49F1A57579125B45"

This is a multi-part message in MIME format.
--------------79DD2A1D49F1A57579125B45
Content-Type: multipart/alternative;
 boundary="------------72E56459CD6D794D0DF5AC4B"

--------------72E56459CD6D794D0DF5AC4B
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8bit
> ------- Forwarded Message --------
Forward message content
> --------------72E56459CD6D794D0DF5AC4B
> Content-Type: text/html; charset=windows-1252
> Content-Transfer-Encoding: 8bit
>
HTML Content
> --------------72E56459CD6D794D0DF5AC4B--
>
> --------------79DD2A1D49F1A57579125B45
> Content-Type: text/calendar;
>  name="invitation.ics"
> Content-Transfer-Encoding: 7bit
> Content-Disposition: attachment;
>  filename="invitation.ics"
>
ICS Content
> --------------79DD2A1D49F1A57579125B45--

【问题讨论】:

  • 这可能最好在 bugzilla.mozilla.org 上的错误报告中。如果您可以显示确切的电子邮件来源以及所有标题(您可以编辑隐私敏感的标题),那就太好了
  • @PhilippKewisch 我已经填写了bug。使用电子邮件标题更新问题。
  • 你能引用 bug id 吗?
  • @PhilippKewisch 错误 ID 是 1333389。我会尽快检查你的答案。

标签: email icalendar thunderbird lightning


【解决方案1】:

您应该将 ics 附件的 Content-Type 设置为:

Content-Type: text/calendar; charset="utf-8"; method=REQUEST

method 选项是一个神奇的词。我不完全确定这是否有效,但至少更接近规范。如果它不起作用,我很乐意更新我的答案。

【讨论】:

  • 我已将手中的 .eml 文件的内容从 Content-Type: text/calendar; name="invitation.ics" 更改为 Content-Type: text/calendar; charset="utf-8"; method=REQUEST,但问题仍然存在。有趣的是,接收消息的 Thunderbird 丢弃了提供的额外标头并仅保留 Content-Type: text/calendar;
  • Thunderbird 通常不会更改标题。您能否验证这是否没有介于两者之间,例如在phpmailer的后端代码中?您也可以尝试从文本/日历部分删除 Content-Disposition
  • @antoniom 你有机会检查一下吗?如果这对您有帮助,如果您能接受答案,我将不胜感激。
  • @phillip-kewisch 我实际上已经检查过了,从你发送它的那一刻起,它并没有解决我的问题。在接下来的几周内,我会回到这个问题上,并向您发送更多详细信息。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-20
  • 2020-10-23
  • 2010-09-17
  • 1970-01-01
  • 2020-12-07
相关资源
最近更新 更多