通过电子邮件将 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 和附件的电子邮件的正确电子邮件格式?