web-dev-qa-db-ja.com

スクリプトを使用してGoogleドライブからメール本文に画像を挿入する方法

誰も私を助けることができますか?

ファイル(画像)をプライベートドライブフォルダーにアップロードするGoogleフォームを作成しました。フォームは画像のURLを含む応答をGoogleシートに送信します。以下のコードはファイルIDを取得し、画像を添付ファイルとして送信しますが、電子メールの本文では送信しません。フォルダはプライベートである必要があります。

function sendImage(){
  var sheet = SpreadsheetApp.getActive().getActiveSheet();
  var fileUrl = sheet.getRange('C2').getValue();
  var index = fileUrl.indexOf('=') + 1;
  var fileId = fileUrl.substring(index);
  var img = DriveApp.getFileById(fileId).getBlob();

 MailApp.sendEmail({
    name: "my Name",
    to: '[email protected]',
    subject: "Test 1",
    body:  img,
    attachments: img,
     });
}
2
Edden

この変更はどうですか? MailApp.sendEmail()にある高度なパラメーターのinlineImagesを使用して、画像を含むメールを送信できます。すでに画像BLOBを取得できました。この変更されたスクリプトでは、blobが使用されます。

変更されたスクリプト:

function sendImage(){
  var sheet = SpreadsheetApp.getActive().getActiveSheet();
  var fileUrl = sheet.getRange('C2').getValue();
  var index = fileUrl.indexOf('=') + 1;
  var fileId = fileUrl.substring(index);
  var img = DriveApp.getFileById(fileId).getBlob();

  MailApp.sendEmail({
    name: "my Name",
    to: '[email protected]',
    subject: "Test 1",
    htmlBody: "<img src=\"cid:sampleImage\">", // Modified
    inlineImages: {sampleImage: img} // Modified
  });
}

参照:

1
Tanaike