node.js - Microsoft Outlook 添加“不支持的日历 message.ics”
问题描述
我使用 ical-generator 模块在 nodejs 应用程序中集成了日历邀请。
按照代码:
require('moment-timezone');
const moment = require('moment');
const iCal = require('ical-generator');
const nodeMailer = require('nodemailer');
const {
subject: summary,
description,
from,
to,
cc,
bcc,
propertyName,
organizerName,
eventStartTime,
eventEndTime,
attendees,
userTimezone,
location,
} = params;
const objCalendar = {
domain: calDomain,
prodId: { company: propertyName, product: calProductIdName },
name: calProductName,
timezone: userTimezone,
};
const objEvent = {
summary,
htmlDescription: `<html><head></head><body>${description}</body></html>`,
organizer: { name: organizerName, email: from },
start: eventStartTime,
end: eventEndTime,
location,
};
const objCal = await iCal(objCalendar);
const event = objCal.createEvent(objEvent);
// set meeting category
event.createCategory({ name: calCategory });
// set meeting attendees
await attendees.map((attendee) => {
if (attendee.trim().length > 0) {
event.createAttendee({ email: attendee.trim(), name: attendee.split('@')[0], mailto: attendee.trim() });
}
return true;
});
// set meeting alaram before 10 minutes
event.createAlarm({
type: calAlarmType,
trigger: 600,
});
return transporter.sendMail({
from,
to,
cc,
bcc,
subject: summary,
description,
icalEvent: {
filename: calFileName,
method: calMethod,
content: objCal.toString(),
},
});
日历邀请适用于 Gmail。没有创建额外的文件 ics 文件,但在 Microsoft Outlook 中,它会创建额外的“不支持的日历 message.ics”。
会议邀请.ics
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Spinner’s End//calendar//EN
NAME:meeting invitation
X-WR-CALNAME:meeting invitation
TIMEZONE-ID:Pacific/Galapagos
X-WR-TIMEZONE:Pacific/Galapagos
BEGIN:VEVENT
UID:0000q8lqy0@mail.com
SEQUENCE:0
DTSTAMP:20201203T132150Z
DTSTART:20201204T140000Z
DTEND:20201204T150000Z
SUMMARY:Schedule Kick-off meeting
LOCATION:Time selected was 8:00 am to 9:00 am
DESCRIPTION:Schedule Kick-off meeting
X-ALT-DESC;FMTTYPE=text/html:<html><head></head><body><h2>What is Lorem Ip
sum?</h2><p><strong>Lorem Ipsum</strong></p></body></html>
ORGANIZER;CN="Bret Lee":mailto:user@mail.com
ATTENDEE;ROLE=REQ-PARTICIPANT;CN=" mahendra.bahubali";EMAIL=mahendra.bahub
ali@mail.com:MAILTO:mahendra.bahubali@mail.com
ATTENDEE;ROLE=REQ-PARTICIPANT;CN=" bret.lee";EMAIL=bret.lee@mail.com:MAILT
O:bret.lee@mail.com
BEGIN:VALARM
ACTION:DISPLAY
TRIGGER:-PT10M
DESCRIPTION:Schedule Kick-off meeting
END:VALARM
CATEGORIES:MEETING
END:VEVENT
END:VCALENDAR
不支持日历 message.ics
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Spinner’s End//calendar//EN
NAME:meeting invitation
X-WR-CALNAME:meeting invitation
TIMEZONE-ID:Pacific/Galapagos
X-WR-TIMEZONE:Pacific/Galapagos
BEGIN:VEVENT
UID:0000q8lqy0@mail.com
SEQUENCE:0
DTSTAMP:20201203T132150Z
DTSTART:20201204T140000Z
DTEND:20201204T150000Z
SUMMARY:Schedule Kick-off meeting
LOCATION:Time selected was 8:00 am to 9:00 am
DESCRIPTION:Schedule Kick-off meeting
X-ALT-DESC;FMTTYPE=text/html:<html><head></head><body><h2>What is Lorem Ip
sum?</h2><p><strong>Lorem Ipsum</strong></p></body></html>
ORGANIZER;CN="Bret Lee":mailto:user@mail.com
ATTENDEE;ROLE=REQ-PARTICIPANT;CN=" mahendra.bahubali";EMAIL=mahendra.bahub
ali@mail.com:MAILTO:mahendra.bahubali@mail.com
ATTENDEE;ROLE=REQ-PARTICIPANT;CN=" bret.lee";EMAIL=bret.lee@mail.com:MAILT
O:bret.lee@mail.com
BEGIN:VALARM
ACTION:DISPLAY
TRIGGER:-PT10M
DESCRIPTION:Schedule Kick-off meeting
END:VALARM
CATEGORIES:MEETING
END:VEVENT
END:VCALENDAR
我想知道创建“不支持的日历 message.ics”文件的原因是什么。我们如何解决它?
解决方案
推荐阅读
- spring-boot - 如何将环境注入 ExecutionCondition
- c# - 使用 C# 在 .txt 文件中创建特殊字符
- html - 如何加载带有角度错误的html
- android - java.lang.NoSuchMethodException:
[class android.view.View] Firebase 回收器适配器 - node.js - 如何使用 nodejs 在 mailchimp 订阅者列表中创建标签?
- flutter - 如何在滚动时隐藏材料底部应用栏但工厂仍然存在
- c - macOS 的 SIOCGIFINDEX 相当于什么?
- python - 在excel工作表中搜索用户输入的字符串,并从工作表中找到字符串各自的单元格信息和列的显示范围
- javascript - 插件 gulp-babel 中的错误:插件/预设文件不允许导出对象,只有函数
- angular - 用引导列循环角 4 的最佳方法?