每当我通过 Google 日历 UI 添加访客时,都会弹出以下对话框:
如果我选择“发送”,它会向用户发送一封格式良好的电子邮件,并提供响应日历事件的选项:
当您手动使用 Google 日历 UI 时,这可以完美运行。问题是我正在尝试使用 Google Apps 脚本来自动将人员添加到事件中。
我正在使用addGuest()以编程方式将客人添加到 CalendarEvent :
event.addGuest("user@example.com");
Run Code Online (Sandbox Code Playgroud)
但是,似乎没有发送电子邮件的选项。
我能找到的最接近的是,当您以编程方式创建事件时,您可以设置sendInvites:
var event = CalendarApp.getDefaultCalendar().createEvent(
'Test',
new Date('April 5, 2029 20:00:00 UTC'),
new Date('April 5, 2029 21:00:00 UTC'),
{sendInvites: true, guests:"your.email+1@example.com"});
Logger.log(event.getId());
Run Code Online (Sandbox Code Playgroud)
这将正确发送格式良好的电子邮件。
但是,该sendInvites选项仅在新创建事件时有效。如果以后我打电话:
var event = CalendarApp.getEventById("insert_id_here");
event.addGuest("your.email+2@example.com");
Run Code Online (Sandbox Code Playgroud)
...它不会发送电子邮件更新(即使该事件是使用 创建的sendInvites=true)。这意味着sendInvites是暂时的,不会在事件上持续存在。
sendInvites调用addGuest()事件时有什么办法吗?例如event.addGuest("user@example.com", {sendInvite: true})?
是否有任何其他解决方法会产生与点击上面 UI 中的“发送”按钮时发送的电子邮件相同的电子邮件?
注:我不希望使用MailApp,因为它不会被很好地格式化像一个谷歌发送电子邮件自动发送出去(例如,具有嵌入式日历邀请,出席者,描述,响应链接等,等,等)。
更新: