【问题标题】:Add content from body to gmail attachment in google scripts在 google 脚本中将内容从正文添加到 gmail 附件
【发布时间】:2020-05-22 10:02:25
【问题描述】:

有没有办法将 gmail 邮件正文内容附加到同样存在于同一邮件中的附件中? 例如:我有一些正文内容和 9 页 pdf,因此最终对象/blob 可能是 10 页,正文作为第一页,其余 9 页来自附件。

我正在谷歌驱动器上上传最终对象。

或者,当我在谷歌驱动器上创建文件时,有没有办法添加正文内容?

mimetype:pdf

var attachment = message.getAttachments()[0];
const folderId = 'MyFolderId';
  Drive.Files.insert({
    title: attachment.getName(),
    mimeType: attachment.getContentType(),
    parents: [{ id: folderId }]
  },
    attachment.copyBlob()
  );

【问题讨论】:

  • 附件/要保存在驱动器上的文件的 mimeType 是什么?
  • mimetype 是 pdf
  • 在这种情况下,您需要使用 OCR 转换手动将 pdf 转换为 Google Docs,将电子邮件正文粘贴到同一文档中并将其转换回 pdf。使用 3rd 方 pdf 合并 API 可能不会那么复杂。
  • 我想提出另一种解决方案。粗略的轮廓。使用getPlainBody() 获取消息正文。将其保存为 PDF。获取附件。合并它们。您可以考虑阅读this answer 以了解合并 PDF 需要什么。在您尝试此方法或@ziganotschka 建议的方法后考虑(发布答案)/(编辑问题以解决疑问)

标签: google-apps-script


【解决方案1】:

所以基本上我将正文转换为pdf,然后使用convertapi将附件pdf合并为1个pdf。

这是您可以将正文文本转换为格式与电子邮件中相同的 pdf 的方法

var blobFile = Utilities.newBlob(message.getBody(), 'text/html').getAs('application/pdf').setName('yourfilename.pdf');

然后使用this答案使用convertapi将这些pdf合并为一个,最后将文件保存到驱动器中。

这是我使用的修改后的合并功能:

function merge(formData) {
  var options = {
    'method' : 'post',
    'payload' : formData,
    'muteHttpExceptions': true
  };

  var response = UrlFetchApp.fetch('https://v2.convertapi.com/convert/pdf/to/merge?Secret=<SECRET_KEY>', options);

  if(response.getResponseCode() == 200) {
    var contentText = JSON.parse(response.getContentText());
    var blob = Utilities.base64Decode(contentText.Files[0].FileData);
    return blob;
  }
  return "null";
}

使用合并 fetchcall 并将文件保存在驱动器中

var folder = DriveApp.getFolderById("your_folder_id");
var formdata = {};
formdata['Files[0]'] = blobFile.copyBlob();
formdata['Files[1]'] = attachment.copyBlob();
var mergedData = merge(formdata);
if(mergedData == "null") return;
folder.createFile(Utilities.newBlob(mergedData,'application/pdf',"your_file.pdf"));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-18
    • 1970-01-01
    相关资源
    最近更新 更多