首页 > 解决方案 > 无法为 Outlook 获取正确的 .ics 格式以将其识别为请求

问题描述

我正在处理确认电子邮件,我需要通过邮件发送 .ics 请求,询问客户我们是否可以在特定时间交付。当我对此进行测试时,我无法从 Outlook 做出响应。当我尝试使用我的 gmail 地址时,我可以完美回复。我在想,也许我的格式是错误的?

我正在使用这个 ics 库

以下是相关代码:

const event = {
                start: [
                    startDate.getFullYear(),
                    startDate.getMonth() + 1,
                    startDate.getDate(),
                    startDate.getHours(),
                    startDate.getMinutes(),
                ],
                end: [
                    endDate.getFullYear(),
                    endDate.getMonth() + 1,
                    endDate.getDate(),
                    endDate.getHours(),
                    endDate.getMinutes(),
                ],
                organizer: {
                    name: "Test Test",
                    email: "souf@test.test", //for testing
                    },
                method: "REQUEST",
                title: `${deal.title} (${deal.reference})`,
                description: deal.summary,
                location: addressToString(customer.address),
                status: "CONFIRMED",
                attendees: [{
                    name: "Test",
                    email: "kri@test.test",
                    rsvp: true,
                    role: 'REQ-PARTICIPANT',
                    partstat: 'NEEDS-ACTION',
                }],
            };

然后从记事本中读出的输出是:

BEGIN:VCALENDAR
VERSION:2.0
CALSCALE:GREGORIAN
PRODID:adamgibbons/ics
METHOD:REQUEST
X-PUBLISHED-TTL:PT1H
BEGIN:VEVENT
UID:dadb3c31-25e9-4026-9878-c1001f4e9a39
SUMMARY:Offerte V1 LG / 1 buiten unit & 1 binnen unit (P4660)
DTSTAMP:20201012T135254Z
DTSTART:20201015T070000Z
DTEND:20201015T150000Z
LOCATION:
STATUS:CONFIRMED
ORGANIZER;CN=Test Test:mailto:souf@test.test
ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;CN=Test:mailt
    o:kri@test.test
END:VEVENT
END:VCALENDAR

标签: javascriptoutlookicalendar

解决方案


邮件必须将上面的 VCALENDAR 作为唯一的 MIME 部分,而不是附件。消息内容类型必须是“文本/日历”


推荐阅读