使用谷歌脚本发送带有图片附件和正文的电子邮件 [英] Send email with picture attachment and body using google script

查看:44
本文介绍了使用谷歌脚本发送带有图片附件和正文的电子邮件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Hi im having trouble in sending email with image attachment. because the image file name is randomized and have no way to find out if the body of my message fits the image it will send from my drive. Here is a step by step of the process i have done:

  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()]
  });
}

感谢您的帮助.

查看图片:

推荐答案

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

To attach a file, you use File.getBlob() to attach it as a blob. For example:

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

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

If you know the exact id of a file (e.g. '0BxDqyd_bUCmvN1E3N0dQOWgycEF'), you can get it as a blob like this:

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()]
  });
}

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

and here's an example of the pictures being added inline instead of as attachments:

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   
  });
}

这篇关于使用谷歌脚本发送带有图片附件和正文的电子邮件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆