【问题标题】:Send email with picture attachment and body using google script使用谷歌脚本发送带有图片附件和正文的电子邮件
【发布时间】:2016-12-22 08:12:21
【问题描述】:

您好,我在发送带有图片附件的电子邮件时遇到了问题。因为图像文件名是随机的,无法确定我的邮件正文是否适合它将从我的驱动器发送的图像。这是我完成的过程的一步一步:

  1. 在线表单集成到谷歌电子表格(完成)
  2. 在线表格到谷歌驱动器(完成)(电子表格每一行的图像按文件夹保存,文件夹名称包含一个唯一 ID,该 ID 也存在于每一行的电子表格单元格中)
  3. 我想在这里做的是通过a获取谷歌驱动器中文件夹的图像。(搜索包含ceratin文本的文件夹名称) b.(获取文件夹内容。)(都是图像) c.(将文件夹的内容附加到电子邮件中。)

例子:

function send() {
  var picture1 = DriveApp.getFilesByName('snottyboy.jpg');
  var picture2     = DriveApp.getFilesByName('daryl.jpg');
  var recipientsTO = "fgh@gmail.com" + "," + "sdd@gmail.com"+ "," + "spaz@gmail.com"+ "," + "def@gmail.com"+ "," + "abc@gmail.com";
  MailApp.sendEmail({
    to:recipientsTO, 
    subject: "LOOK A LIKE",   
    body:"Final Message",  
    attachments: [picture1.next(),picture2.next()]
  });
}

感谢您的帮助。

见图:

【问题讨论】:

    标签: google-apps-script google-drive-api


    【解决方案1】:

    要附加文件,请使用File.getBlob() 将其附加为blob。例如:

    attachments: [picture1.next().getBlob(),picture2.next().getBlob()]
    

    如果您知道文件的确切 ID(例如 '0BxDqyd_bUCmvN1E3N0dQOWgycEF'),您可以像这样将其作为 blob 获取:

    var picture3Blob = DriveApp.getFileById('0BxDqyd_bUCmvN1E3N0dQOWgycEF').getBlob();
    

    这是一个工作示例:

    function sendPics() {
      var picture1 = DriveApp.getFileById('0BxDqyd_bUCmvN1E3N0dQOWgycFE'); //public with link
      var picture2 = DriveApp.getFileById('0BxDqyd_bUCmvTFNjRkRXbXA2Tms'); //public with link
       MailApp.sendEmail({
         to: 'testa@example.com, testb@example.com', 
         subject: "This is a test", 
         body:"Test message",
         attachments: [picture1.getBlob(), picture2.getBlob()]
      });
    }
    

    这是一个内联而不是作为附件添加图片的示例:

    function sendPicsInline() {
      var picture1 = DriveApp.getFileById('0BxDqyd_bUCmvN1E3N0dQOWgycFE'); //public with link
      var picture2 = DriveApp.getFileById('0BxDqyd_bUCmvTFNjRkRXbXA2Tms'); //public with link
      var inlineImages = {};
      inlineImages[picture1.getId()] = picture1.getBlob();
      inlineImages[picture2.getId()] = picture2.getBlob();
       MailApp.sendEmail({
         to: 'testa@example.com, testb@example.com', 
         subject: "This is a test", 
         body:"Test message",
         htmlBody: 'Test message with pics inline <br>' +
         'first:<br><img src="cid:' + picture1.getId() + '" /><br>' +
         'second:<br><img src="cid:' + picture2.getId() + '" />',
         inlineImages: inlineImages   
      });
    }
    

    【讨论】:

    • 非常感谢@peter 只是有一个问题,如果我知道文件夹名称的某些部分怎么办?并且不知道 ID。它的内容或名称?
    • 您能否接受此答案或编辑您的问题以清楚地举例说明您需要什么说明。
    • 嗨我已经更新了我的问题..谢谢..我真的很难解决这个问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2015-09-12
    • 2018-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多