使用mailApp发送包含图片和其他内容的电子邮件

时间:2019-12-30 13:49:03

标签: google-apps-script

我尝试使用此代码并运行良好,它使用我需要的帐户发送电子邮件:

var aliases = GmailApp.getAliases();
var Mailfrom = aliases[0];
GmailApp.sendEmail(
                    "email@gmail.com", 
                    "From an alias", 
                    "A message from an alias!", 
                    {
                      "from": Mailfrom
                    });

另一方面,我有一个发送图像的代码:(效果很好)

var correo = "email@gmail.com";
var copia = "copymail@gmail.com"
var logo = DriveApp.getFileById(AxId).getBlob();
var fileID = PropertiesService.getScriptProperties().getProperty('IFILE');
var img = DriveApp.getFileById(fileID).getBlob();
MailApp.sendEmail({
                    to: correo,
                    cc: copia,
                    subject: asunto,
                    htmlBody: cuerpo,
                    inlineImages: {
                      Axlogo: logo, 
                      Evidencia: img
                    }
                  });

我想要同时加入这两个选项,我尝试这样做:

MailApp.sendEmail({
                     to: correo,
                     cc: copia, 
                     subject: asunto,
                     htmlBody: cuerpo,
                     inlineImages: {
                       Axlogo: logo,
                       Evidencia: img
                     }
                  },
                  {
                     'from': Mailfrom
                  });

Web控制台显示:uncaught

MailApp.sendEmail({
                    to: correo,
                    cc: copia,
                    subject: asunto,
                    htmlBody: cuerpo,
                    inlineImages: {
                      Axlogo: logo, 
                      Evidencia: img
                    },
                    {
                      'from': Mailfrom
                    }
                  }) 

编程窗口显示:invalid property ID

如何编写带有“发件人”选项和图像inlineImages选项的邮件发送选项?

谢谢您的帮助。

1 个答案:

答案 0 :(得分:0)

答案:

如果要在发送电子邮件时使用别名,则必须使用GmailApp而不是MailApp。您还必须参考inlineImages参数中指定的名称,在html正文中指定希望显示嵌入式图像的位置。

代码:

您可以使用以下代码完成所需的操作:

function myFunction() {
  var image = DriveApp.getFileById("<id-of-file>").getBlob().setName('name');
  var html =  '<body>' + 'Test <img src="cid:image">' + '</body>'
  GmailApp.sendEmail('toAddress@domain.com', 
                     'subject', 
                     'message body',
                     {
                       htmlBody: html,
                       inlineImages: {
                         'image': image
                       }
                       from: 'alias@mydomain.com'
                     });
}

请记住要获取相关的别名以插入from中,并根据需要更改文件ID,收件人地址和电子邮件信息。

希望对您有帮助!

参考文献: