通过电子邮件将 Google 文档作为纯文本附件发送

Posted

技术标签:

【中文标题】通过电子邮件将 Google 文档作为纯文本附件发送【英文标题】:Email Google Document as Plain Text Attachment 【发布时间】:2013-07-26 22:19:44 【问题描述】:

我正在尝试使用 Google Apps 脚本以纯文本电子邮件附件的形式发送 Google 文档(这里没什么特别的,只是一个简单的脚本构建的文本文档)。我可以通过进入我的驱动器并选择“文件>以附件形式发送电子邮件...”来手动执行此操作。从那里会弹出一个窗口,询问收件人、文件类型(我可以在哪里选择纯文本)、主题、消息等。我该如何通过脚本来做到这一点?

我有另一个使用以下 PDF 的文档(正确定义了 TimeDataId 和 email_address):

//Get Data as .pdf file
var TimeData = DocsList.getFileById(TimeDataId).getAs('application/pdf');

// Attach pdf and send the email to customer
var subject = 'Time Data';
var body = 'Please see the attached Data.' + '<br/><br/>Thank you,';
MailApp.sendEmail(email_address, subject, body, htmlBody: body, attachments: TimeData);

这对于 PDF 来说完美无缺。但是,我真的在寻找这样的东西:

//Get Data as .txt file
var TimeData = DocsList.getFileById(TimeDataId).getAs(MimeType.PLAIN_TEXT);

// Attach txt and send the email to customer
var subject = 'Time Data';
var body = 'Please see the attached Data.' + '<br/><br/>Thank you,';
MailApp.sendEmail(email_address, subject, body, htmlBody: body, attachments: TimeData);

我用这种方法得到的只是一个失败通知,报告“需要授权才能执行该操作”。

我知道我可以将纯文本信息粘贴到我的电子邮件正文中,但我真的希望有一个可下载的文件,因为这为用户节省了一个步骤(此文件将用于稍后将数据导入到另一个程序)。这个问题是否已经被问及并得到了回答?有没有人有任何想法?感谢您的任何意见。

【问题讨论】:

【参考方案1】:

以下是我如何从 Document 中获取文本作为纯文本文件。

var txt = DocumentApp.openById(TimeDataId).getText();
var TimeData = Utilities.newBlob(txt, 'text/plain','myattachment.txt')

它需要额外的间接级别,但目前getAs 仅支持 PDF。

我相信您收到的错误消息是新 DriveApp 的 MimeType 类,但我尚未验证。

【讨论】:

以上是关于通过电子邮件将 Google 文档作为纯文本附件发送的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 System.NET.mail 发送带有附件但没有任何纯文本正文的电子邮件?

使用 Google Apps 脚本删除 Gmail 电子邮件的附件

SMTP 中带有纯文本、HTML 和附件的电子邮件的正确电子邮件格式?

带有纯文本部分、html 部分和附件的电子邮件

使用Python,SMTP发邮件到qq邮箱(文本/超链接/图片/表格/附件表格)

Word邮件合并不能发送HTML格式以及怎么带附件?