我使用 AppsScript 创建带有 ICS 附件的草稿电子邮件,但是 Gmail 网页版删除了该附件

问题描述 投票:0回答:1

下面的脚本创建一封电子邮件草稿。如果我在 Outlook 中查看草稿,它有 2 个附件,一份文本,一份会议邀请 (ICS)。如果我从 Outlook 发送它,它会带有 2 个附件。 但是,如果我在浏览器中查看 Gmail 中的草稿,ICS 附件已消失。

function ICStest(){
  var mytitle="hi", myUUID = Utilities.getUuid(), myShortDesc=mytitle;
  var myICS=`
BEGIN:VCALENDAR
PRODID:-//Google Inc//Google Calendar 70.9054//EN
VERSION:2.0
CALSCALE:GREGORIAN
BEGIN:VEVENT
SUMMARY:${mytitle}
DTSTART:20240104T093000Z
DTEND:20240104T133000Z
DTSTAMP:20240121T164157Z
UID:${myUUID}
DESCRIPTION:${myShortDesc}
STATUS:CONFIRMED
PRIORITY:0
END:VEVENT
END:VCALENDAR
`;
var myoptions = {attachments:[{fileName:"test.ics", content:myICS,mimeType:'text/calendar'},{fileName:"test2.txt", content:"Stuff",mimeType:'text/plain'}]};
GmailApp.createDraft("[email protected]","Test","Hi",myoptions);
}

Here it is in Outlook with 2 attachments:

Here it is in gmail web with only 1 attachment

我想通过代码创建一封附有会议邀请的电子邮件草稿,对其进行编辑以进行个性化设置,然后从 Gmail Web 发送一封电子邮件,其中包含完整的 ICS 附件。我可以使用 Outlook 执行此操作,但不能使用 Gmail Web - ICS 附件消失,但文本附件仍然存在。

我不能假设我的所有用户都会有 Outlook,许多用户使用 Outlook Web,但它不起作用! 感谢帮助。

google-apps-script gmail icalendar
1个回答
0
投票

我还没有设法解决这个问题。解决方法是将 ICS 数据存储到 Google Drive 文件中,然后附加该文件的链接,例如:

var myfolder=DriveApp.getFolderById(ICSFolderId);
var myfile = myfolder.createFile(myFileName, myICS, 'text/calendar');
myfile.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.VIEW);
var myURL = `https://drive.usercontent.google.com/download?id=${myfile.getId()}&confirm=xxx`;
var mylink0=`<a href="${myURL}">Add to calendar (.ics)</a>`;

这会在我选择的文件夹中创建一个名为“myFileName”的新文件,设置权限,以便任何拥有该链接的人都可以查看该文件,然后构建一个指向该文件的下载链接的 URL。这在 iPhone 上运行良好,并且避免使用附件。
不是解决方案,但总比没有好。

© www.soinside.com 2019 - 2024. All rights reserved.