Google脚本 - 将Gmail附件添加到文档并在云端硬盘中处理

时间:2015-01-03 00:53:04

标签: javascript google-apps-script google-drive-api email-attachments

基本上,我的父亲让我创建一个脚本来查找带有“驱动器”标签的电子邮件,并将其内容保存到他的驱动器中。 (如果你问为什么,那么他就可以通过电子邮件发送几个PDF文件并让脚本自动将它们放在他的驱动器中)

除了一件事,我已经完成了所有事情:无法弄清楚如何保存附件。 在processDocument方法中,我遍历附件并尝试执行:

doc.appendParagraph(the attachment)

是否有使用processDocument()方法添加附件的正确方法?

代码链接: http://pastebin.com/RwFNs232

感谢。

2 个答案:

答案 0 :(得分:1)

您可以使用DriveApp将附件blob保存在单独的文件中:

var fileBlob = "your blob" // GmailAttachment.copyBlob() method;
var file = DriveApp.createFile(blob);

然后在您的文档中写下附件的链接

doc.appendParagraph(file.getUrl());

注意:

您可能希望在文档中编写附件内容。在这种情况下,您可以直接写入文档,而无需在云端硬盘中创建文件。但它很危险,因为你不能把一些blob的内容作为一个格式良好的字符串。

doc.appendParagraph("attachment content"); //GmailAttachment.getDataAsString() 

我认为它会解决您的问题。

答案 1 :(得分:0)

正如@nanndoj所说,您应该使用blob文件结构来输入文件。有关blob的其他信息应作为单独的问题提出。

但是,附件不应仅附加到电子邮件的doc。相反,您应该在sendEmail函数的调用中包含blob引用,如Google's documentation here中所示。

实施例

sendEmail(recipient, subject, body, options)

MailApp.sendEmail('mike@example.com', 'Attachment example', 'Two files are attached.', {
     name: 'Automatic Emailer Script',
     attachments: [file.getAs(MimeType.PDF), blob]
 });