所以,使用rails/ruby和linux,我希望能够发送一个实际的,真实的Outlook风格的会议请求。 真实之处在于它的行为应该类似于会议请求从 Outlook 发送时的行为。
请注意,我并不是说将iCal/vCal作为电子邮件的附件发送 - 我已经可以这样做了。 iCal 路由的问题是:
- 在Outlook中,您必须打开.ics附件(双击)以获取会议详细信息并接受它
- 如果电子邮件收件人是会议的组织者(组织者电子邮件==当前用户电子邮件),则该用户无法将会议添加到其日历中(Outlook认为,由于您是组织者,因此您已经知道它)
- 在iPhone上(我知道...),附有iicals的电子邮件不会显示在您收到的邀请列表中。 这里每个使用iPhone的人都会在这个列表中寻找他们需要接受的邀请,所以我也需要出现在那里。 Outlook 会议请求显示在此处。
那么有谁知道如何从轨道发送 Outlook 会议请求?
更新我认为描述我想要实现的目标会有所帮助:
3人:James@company.com、Bob@company.com、Alice@company.com
在轨道应用程序上,詹姆斯安排了与爱丽丝的会议,并邀请鲍勃作为与会者。rails 应用程序现在应该向 James、Alice 和 Bob(作为与会者)发送会议请求(由 James 作为组织者),这样他们三个都可以轻松地将此会议添加到他们的 Outlook 日历中(此时我不关心拒绝/可能)。 此外,Bob使用通过ActiveSync链接到Exchnage帐户的iPhone,因此这也应该对他有用。
更新2:这是我的ics文件的内容(附在HTML电子邮件中),该文件通过电子邮件发送给 james@company.com(组织者)和与会者。 每个人都需要能够将其添加到他们的日历中:
BEGIN:VCALENDAR
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:REQUEST
PRODID:iCalendar-Ruby
BEGIN:VEVENT
ORGANIZER:james@company.co.uk
ATTENDEE:srg@company.co.uk
ATTENDEE:at@company.co.uk
DESCRIPTION:QBR meetingnWe will discuss the following:nnLocal MarketnBusinessPlanningnProduct RangenMarketing & Retailing Activityn
DTEND:20130914T154500Z
DTSTAMP:20130911T140600Z
DTSTART:20130914T134500Z
CLASS:PRIVATE
LAST-MODIFIED:20130911T140600Z
LOCATION:Somewhere in a far off land
SEQUENCE:0
SUMMARY:Meeting with The Wizard
UID:MEETING71
URL:http://internal.company.co.uk/meetings/71
END:VEVENT
END:VCALENDAR
当该电子邮件出现在我(詹姆斯)的 Outlook 中时,有一个.ics附件(该电子邮件是常规的 HTML 电子邮件)。 打开附件,我被告知,作为会议组织者,我不需要回复,也没有"接受"或"添加到日历"选项
更新 3:
这就是我现在发送的内容:
Date: Mon, 16 Sep 2013 16:02:52 +0100
From: app@company.co.uk
To: james@company.co.uk
Message-ID: <52371d9c820c2_475537fe74518a2@rails-devel.mail>
Subject: Meeting with Someone Interesting
Mime-Version: 1.0
Content-Type: text/calendar;
charset=UTF-8;
method=REQUEST;
name='meeting.ics'
Content-Transfer-Encoding: 7bit
BEGIN:VCALENDAR
VERSION:2.0
CALSCALE:GREGORIAN
PRODID:iCalendar-Ruby
BEGIN:VEVENT
ATTENDEE:james@company.co.uk
ATTENDEE:sjt@company.co.uk
ATTENDEE:at@company.co.uk
DESCRIPTION:QBR meetingnWe will discuss the following:nnProfitnProfit &
Lossn
DTEND:20130913T113000Z
DTSTAMP:20130911T133500Z
DTSTART:20130913T093000Z
CLASS:PRIVATE
LAST-MODIFIED:20130916T150200Z
LOCATION:Someplace
ORGANIZER:james@company.co.uk
SEQUENCE:0
SUMMARY:Meeting with Someone Interesting
UID:MEETING69
URL:http://10.0.0.29:3000/meetings/69
END:VEVENT
END:VCALENDAR
不要将 iCal 文件作为附件发送。上述数据必须是邮件中唯一的 MIME 部分,其内容类型必须是文本/日历
MIME-Version: 1.0
Subject: test
To: <someuser@dom,ain.demo>
Content-Type: text/calendar;
method=REQUEST;
name="meeting.ics"
BEGIN:VCALENDAR
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:REQUEST
PRODID:iCalendar-Ruby
BEGIN:VEVENT
ORGANIZER:james@company.co.uk
ATTENDEE:srg@company.co.uk
ATTENDEE:at@company.co.uk
DESCRIPTION:QBR meetingnWe will discuss the following:nnLocal MarketnBusinessPlanningnProduct RangenMarketing & Retailing Activityn
DTEND:20130914T154500Z
DTSTAMP:20130911T140600Z
DTSTART:20130914T134500Z
CLASS:PRIVATE
LAST-MODIFIED:20130911T140600Z
LOCATION:Somewhere in a far off land
SEQUENCE:0
SUMMARY:Meeting with The Wizard
UID:MEETING71
URL:http://internal.company.co.uk/meetings/71
END:VEVENT
END:VCALENDAR
所有这些都不适用于 ICS 文件,使用 Outlook 一个这样的文件 ICS 或 EML(Outlook express)永远不会像味精格式(Outlook 格式)那样发送,这样,要将 EML 转换为 msg,您需要一个"导入"过程,Outlook 有一个并且工作正常,但在 Outlook Express 中,会议不存在,Outlook 无法导入,因为没有机制来做到这一点, 另一方面,ICS不是Outlook会议请求文件,是不一样的,您可以尝试创建会议请求并将其保存在扩展名为msg的文件中,完成后您可以看到该图标是图标会议,打开该文件时,它会显示Outlook会议请求。
您需要构建Outlook会议请求格式,并在Outlook网络中发送它,如果您希望它按您的意愿工作。