星期五, 8月 15, 2025

[GAS] Gmail 顯示圖片

該篇筆記會記錄
  • 使用 UrlFetchApp 抓 Flickr url 為 Email Inline Image
  • Google Drive 檔案為 Email 附件
function EmailImage() {
  
  // 從 Flcikr url 上抓圖片
  let flickrImage = UrlFetchApp
                          .fetch('https://live.staticflickr.com/123456/ooxx_n.jpg')
                          .getBlob()
                          .setName("自定義檔案名稱");

  // 夾帶 Google Drive 內圖片
  let file = DriveApp.getFileById('檔案 id');

  // mail 內容
  MailApp.sendEmail({
    to: "ooxx@gmail.com",
    subject: "Gmail 顯示圖片",
    htmlBody: 
    "顯示內嵌圖片,資料來源為 Flickr url<br>" +
    "<br>" +
    "<br>" +
    "<img src='cid:flickrImageSource'>",
      inlineImages:
      {
        flickrImageSource: flickrImage
      },
      attachments: [file.getAs(MimeType.JPEG)]
   });
}

執行後結果
InlineImage 重點在於 cid (Content-ID),使用時要注意 [cid 識別名稱] 跟 [InlineImages 識別名稱] 要一致,才能正確嵌進 Email 內,測試時發現識別名稱不一致,圖檔會變成附件,而 SetName("自定義檔案名稱") 函數,當圖檔是附件檔案的話,即為該附件檔案名稱

[cid 識別名稱] 和 [InlineImages 識別名稱]
下圖是故意把識別碼打錯的執行結果,可以看見 InlineImage 變成附件檔案,且附件檔案名稱為 [自訂義檔案名稱]

沒有留言:

張貼留言