如何使用 MailApp 在电子邮件中包含内嵌图像

2024-01-04

我有一个简单的 MailApp 来发送 HTML 格式的文本。我的小问题是:如何在该文本中插入内嵌图像?例如,我想为荷兰语文本添加荷兰国旗,为法语内容添加法国国旗。

我认为只使用 HTML 代码就可以完成这项工作。但可惜的是,没有这样的运气。这只是我需要的一个小图像,内容下方没有大图像。我怎样才能做到这一点?

MailApp.sendEmail(mailaddress, subject, "" ,
              { htmlBody: bodyNL + bodyFR })

的文档sendEmail(message) https://developers.google.com/apps-script/reference/mail/mail-app#sendemailmessage演示如何将两个徽标作为内嵌图像添加到电子邮件中。

这是对 Google 示例的改编,它将在文本块前面添加区域设置标志。它使用来自维基媒体的图像,这些图像在知识共享下免费许可。

其工作原理的关键是:

  • HTML <img>电子邮件正文中的标签的使用src='cid:[name]'参考附图。这些都是内容ID通用资源定位器,引用多部分电子邮件的各个部分。
  • 您可以使用内联style on the <img>标签告诉邮件客户端如何显示它们。例如,我们缩放了所附图像。 (注意:使用所需尺寸的自定义图像会减少浪费。)
  • 当电子邮件被编码以供发送时,每个附加图像将单独存在part,标记为cid你已经在inlineImages目的。该对象是高级参数对象的一部分sendMail() method.

    在这里,我们有两个cids, nlFlag and frFlag,每个与一个相关联file Blob https://developers.google.com/apps-script/reference/base/blob.

    inlineImages:
    {
      nlFlag: nlFlagBlob,
      frFlag: frFlagBlob
    }
    
  • 文件 blob 可以通过多种方式获取;这里我们用过UrlFetchApp.fetch()从 WikiMedia 获取二进制图像,然后将它们转换为 blob 并设置用于附加的 blob 的名称。

Code:

/**
 * Example of sending an HTML email message with inline images.
 * From: http://stackoverflow.com/a/37688529/1677912
 */
function sendInlineImages() {
  var mailaddress = Session.getActiveUser().getEmail();
  var subject = "test inline images";
  var bodyNL = "This is <B>DUTCH</B> text.";
  var bodyFR = "This is <B>FRENCH</B> text.";

  // Image URLs, under CC license
  var nlFlagUrl = "https://upload.wikimedia.org/wikipedia/commons/thumb/b/b2/Flag_of_the_Netherlands.png/320px-Flag_of_the_Netherlands.png";
  var frFlagUrl = "https://upload.wikimedia.org/wikipedia/en/thumb/c/c3/Flag_of_France.svg/320px-Flag_of_France.svg.png";

  // Fetch images as blobs, set names for attachments
  var nlFlagBlob = UrlFetchApp
                            .fetch(nlFlagUrl)
                            .getBlob()
                            .setName("nlFlagBlob");
  var frFlagBlob = UrlFetchApp
                            .fetch(frFlagUrl)
                            .getBlob()
                            .setName("frFlagBlob");

  // Prepend embeded image tags for email
  bodyNL = "<img src='cid:nlFlag' style='width:24px; height:16px;'/>" + bodyNL;
  bodyFR = "<img src='cid:frFlag' style='width:24px; height:16px;'/>" + bodyFR;

  // Send message with inlineImages object, matching embedded tags.
  MailApp.sendEmail(mailaddress, subject, "",
                    { htmlBody: bodyNL + "<BR/><BR/>" + bodyFR,
                      inlineImages:
                      {
                        nlFlag: nlFlagBlob,
                        frFlag: frFlagBlob
                      }
                    });

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 MailApp 在电子邮件中包含内嵌图像 的相关文章

  • 电子邮件标题中的特殊字符是什么以及何时使用引号?

    我正在尝试使用 PHP 发送和阅读电子邮件 到目前为止 我发现我必须使用该函数对特殊字符进行编码mb encode mimeheader 但我不必对空格进行编码 我还发现地址字段中的括号不起作用 读取带有括号的标题时 PHP 的 imap
  • 使用 jQuery 和 AJAX 跨域 PHP 调用

    我遇到一个问题 我使用的服务器未配置为允许 PHP 或 CGI 并且我需要使用从该服务器上的表单收到的变量向所有者发送邮件 例如一般查询 反馈表单 有谁知道我如何在配置为使用 PHP 的另一个域上调用一个简单的 PHP 文件 然后执行mai
  • 按按钮,启动带有附件的本机电子邮件程序(位于网络服务器上)

    我已经尝试了所有不同版本的发送电子邮件 但尚未实现以下目标 Javascript 或 HTML 按钮 按下时打开带有附件的本机邮件应用程序 附件与网页位于同一服务器上 例如 web www something com file www so
  • 如何用utf8发送邮件

    我想以 utf 8 编码发送此电子邮件的消息 我能为此做什么 include functions php name stripslashes POST name email trim POST email subject stripslas
  • 如何从 Google 电子表格中删除项目?

    我通过在脚本编辑器上选择 文件 gt 制作副本 错误地制作了 Google Apps 脚本项目的副本 从那时起 每次我在该项目所属的电子表格屏幕上单击 工具 gt 脚本编辑器 时 我看到显示两个项目 原始项目和复制项目 的屏幕 我需要选择一
  • 使用 Gmail Apps 脚本以 HTML 和普通格式发送电子邮件

    我正在使用 Google Apps 脚本为 Gmail 编写一个自动回复机器人 http script google com http script google com 每次我使用GmailThread s Reply https dev
  • 电子表格的 Google 脚本(If 语句)

    我希望有人能帮助我解决这个问题 我是编码新手 我有一个谷歌电子表格 其中有一个可以推送电子邮件的脚本 我试图让脚本忽略脚本已发送电子邮件的行 function onOpen var ui SpreadsheetApp getUi Or Do
  • 通过嵌入式 Google Sheet 上的按钮激活脚本

    我正在尝试嵌入一个 Google 电子表格 其中包含一个我希望用户能够激活的脚本 我不希望他们能够编辑页面上的任何内容 我想我可以这样做 共享工作表并设置编辑权限 限制在我想要共享的一张纸上进行编辑 图像位于单元格上方 所以我认为这会阻止人
  • PHPMailer - AddAttachment 不起作用

    我有一个网络表单 它使用 phpmailer 函数将表单内容通过电子邮件发送回给我 我正在尝试添加 AddAttachment 功能 但我似乎在 php ini 中遇到问题 这是我的 html 片段 td div align right A
  • 用 PHP 发送电子邮件 - 空白电子邮件接收

    我正在尝试使用 PHP 发送电子邮件 我的问题实际上是 发送的电子邮件是空白的 我的 PHP 函数 function sendMail template Email Subject USR Id USR Email postdata htt
  • 清除内容并从另一张纸复制

    我编写了一个脚本 旨在清除 Google Sheets 电子表格的内容并复制并粘贴另一个工作表的内容 需要清除的工作表称为 NEW SHEET 要复制的工作表称为 Database 由于某种原因 该脚本目前无法运行 当我运行它时什么也没有发
  • 在 Django 1.7 中使用 html 发送电子邮件

    In 发送邮件 我们有一个新参数 html message Docs https docs djangoproject com en dev topics email send mail I have 电子邮件 html文件 我想发送我的消
  • 在应用程序脚本中将 .XLS 转换为 Google 表格的最有效方法是什么?

    我每周都会自动将 XLS 文件下载到 Google 云端硬盘 我想每周自动将最新下载的 XLS 文件转换为 Google 表格格式 因此转到特定的 Google 驱动器文件夹 查找最新或未转换的 XLS 文件 转换为 Google 表格格式
  • javascript 对象是否像 Ruby 一样“开放”?

    在 Ruby 中 我可以使用与声明自己的语法相同的语法来添加和修改任何类 对象或方法的功能 因为 Ruby 有 开放类 JavaScript 是这样的吗 举个例子 就我而言 我想更改 Google Apps 脚本处理 URL 对象的方式 以
  • 在从表单发布到其他人的脚本之前如何执行 php?

    我有一个联系表格 可以发布到 mailchimp 但在某些情况下 我也希望它发送一封电子邮件 我考虑过改变
  • 使用 shell 脚本发送 HTML 邮件

    如何使用 shell 脚本发送 HTML 电子邮件 首先 您需要撰写消息 最低限度由这两个标头组成 MIME Version 1 0 Content Type text html 以及适当的消息正文 p Hello world p 获得后
  • 使用 gmail smtp 服务器时如何更改发件人地址

    我想从以下地址发送电子邮件A to B with HEADER and CONTENT通过 Gmail 如何通过 PHP 做到这一点 我已经指定了FROM email protected cdn cgi l email protection
  • SMTP 配置在生产中不起作用

    我正在尝试在提交表单时发送电子邮件 我正在使用 PHPMailer 使用以下配置发送邮件 mail new PHPMailer mail gt isSMTP mail gt Host mail example in mail gt Port
  • ReferenceError:未定义 ConferenceDataService

    我正在尝试开发像 Zoom 会议这样的谷歌日历插件 在 appsscript json 文件中 有以下代码 calendar conferenceSolution onCreateFunction createConference id 1
  • 对于只触及我的工作表的 Google 表格脚本,收到“此应用程序未经验证”

    我正在编写一个 Google Sheets 脚本 我只想访问与 gs 文件关联的同一电子表格中的数据 似乎我应该有权在自己的电子表格中运行脚本 但是每当我运行一个函数时 我都会得到一个This app isn t verified信息 我该

随机推荐