前提・実現したいこと
GASを利用して複数の会社にメールを送りたい(下書き作成)と思っております。
スプレッドシートに送信パターン(会社名・担当者名・メールアドレス・メール本文・添付ファイル1のドライブURL・添付ファイル2のドライブURL・添付ファイル3のドライブURL)がございます。
3つ添付がある会社は問題ございませんが、1つのみの会社や2つのみの会社がある場合は下書きに作成されません。
if文を使えば出来るのではと思い、いろいろ調べてますが、全くの初心者で解決策が見つかりません。
ご教授頂けませんでしょうか?
発生している問題・エラーメッセージ
コード作成が出来ない。
該当のソースコード
//プログラム0|メール送信 function CreateMails() { //プログラム1|スプレッドシート指定 var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet1 = spreadsheet.getSheetByName('メールリスト'); var MailList = sheet1.getDataRange().getValues(); //プログラム2|ログ用の配列設定 var myLog = []; //プログラム3|シート「メールリスト」のメールごとに送信 for(var i = 1; i <= MailList.length; i++) { var mailaddress = MailList[i][3]; //プログラム4|行ごとの情報を取得 var company = MailList[i][1];//会社名 var name = MailList[i][2];//名前 var title = MailList[i][4];//メールタイトル //プログラム5|Googleドキュメントをメール本文として取得 var docurl = MailList[i][6];//あらかじめ作っておいたGoogleドキュメントURLを取得(中身がメール本文) var docid = docurl.split('/')[5];//GoogleドキュメントをIDで取得 var doc = DocumentApp.openById(docid); //Googleドキュメントを取得 var body = doc.getBody().getText().replace('{会社名}',company).replace('{名前}',name); //Googleドキュメント内の{会社名}{名前}を置換 //プログラム6-1 添付ファイル1 var fileurl = MailList[i][7];//添付ファイルURL var fileurls = fileurl.split('/'); var fileid = fileurls[5]; var file = DriveApp.getFileById(fileid); //プログラム6-2 添付ファイル2 var fileurl2 = MailList[i][8];//添付ファイルURL2 var fileurls = fileurl2.split('/'); var fileid = fileurls[5]; var file2 = DriveApp.getFileById(fileid); //プログラム6-3 添付ファイル3 var fileurl3 = MailList[i][9];//添付ファイルURL3 var fileurls = fileurl3.split('/'); var fileid = fileurls[5]; var file3 = DriveApp.getFileById(fileid); //プログラム7|メール下書き GmailApp.createDraft(mailaddress,title,body,{attachments:[file,file2,file3]}); } }
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/05 08:53
2021/02/06 01:23
2021/02/08 09:02