@jyusanbanme

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

zipファイルが取得できないのはなぜか?

以下のコードで、zipファイルが取得できないのはなぜか?エラーは出ていない。

function myFunction_2() {
let ss = SpreadsheetApp.getActiveSpreadsheet();
let sheet = ss.getActiveSheet();
let range = sheet.getDataRange();
let data = range.getValues();

for (let i = 1; i < data.length; i++) {
let subject = 'セミナーのご案内'; // 件名
let recipient = data[i][0]; // 宛先
let company = data[i][1]; // 企業名
let name = data[i][3]; // 宛名
let body = data[i][2]; // 本文

// 本文中の文字列の書き換え
body = body.replace(/{{企業名}}/g, company);
body = body.replace(/{{宛名}}/g, name);

// 各行のZIPファイルのIDを取得
let zipFileId = data[i][4]; // 5列目にZIPファイルのIDがあると仮定

// 添付ファイルを取得
let attachment = DriveApp.getFileById(zipFileId);

// メールを送信
MailApp.sendEmail({
  to: recipient,
  subject: subject,
  htmlBody: body,
  attachments: [attachment.getBlob()] // ZIP形式の添付ファイルを送信する場合
});

}
}

0 likes

2Answer

Comments

  1. @jyusanbanme

    Questioner

    初心者で汲み取れていないです。

解決しました

function draftEmails() {
let ss = SpreadsheetApp.getActiveSpreadsheet();
let sheet = ss.getActiveSheet();
let range = sheet.getDataRange();
let data = range.getValues();

// メールの下書きを作成
for (let i = 1; i < data.length; i++) {
let subject = 'セミナーのご案内'; // 件名
let recipient = data[i][0]; // 宛先
let company = data[i][1]; // 企業名
let name = data[i][3]; // 宛名
let body = data[i][2]; // 本文

// 本文中の文字列の書き換え
body = body.replace(/{{企業名}}/g, company);
body = body.replace(/{{宛名}}/g, name);

// 5列目にZIPファイルのIDがあると仮定して、添付ファイルを取得
let zipFileId = data[i][4];
console.log("ZIPファイルのID:", zipFileId); // デバッグ用出力
let attachment = DriveApp.getFileById(zipFileId);

// メールの下書きを作成
GmailApp.createDraft(recipient, subject, body, {
  attachments: [attachment.getAs(MimeType.ZIP)] // ZIP形式の添付ファイルを送信する場合
});

}
}

0Like

Comments

  1. お役に立てなかったようで失礼しました。

    コードはコードブロックに入れると、断然 読みやすくなります。

    function draftEmails() {
      let ss = SpreadsheetApp.getActiveSpreadsheet();
      let sheet = ss.getActiveSheet();
      let range = sheet.getDataRange();
      let data = range.getValues();
    
      // メールの下書きを作成
      for (let i = 1; i < data.length; i++) {
        let subject = 'セミナーのご案内'; // 件名
        let recipient = data[i][0]; // 宛先
        let company = data[i][1]; // 企業名
        let name = data[i][3]; // 宛名
        let body = data[i][2]; // 本文
    
        // 本文中の文字列の書き換え
        body = body.replace(/{{企業名}}/g, company);
        body = body.replace(/{{宛名}}/g, name);
    
        // 5列目にZIPファイルのIDがあると仮定して、添付ファイルを取得
        let zipFileId = data[i][4];
        console.log("ZIPファイルのID:", zipFileId); // デバッグ用出力
    
        let attachment = DriveApp.getFileById(zipFileId);
    
        // メールの下書きを作成
        GmailApp.createDraft(recipient, subject, body, {
          attachments: [attachment.getAs(MimeType.ZIP)] // ZIP形式の添付ファイルを送信する場合
        });
      }
    }
    

    今後の参考にしてください。

Your answer might help someone💌