前提・実現したいこと
シートに記載された情報を使ってEmailを送信する。
メールの送信者リストを作成し、指定範囲の上から順に且つ送信フラグがブランクでない場合に宛先ごとに異なったメッセージを挿入&ファイルを添付して送信をしようとしております。
###ここに質問の内容を詳しく書いてください。
シートに記載した情報を元に、ドライブから添付ファイルを貼り付けてメールを送信したいです。
シートには、以下のコラムが左から(A列から)順に入っています。
SEQ,会社名,担当者名,宛先,CC,メール内容,メールタイトル,メール本文,署名,添付ファイルのフォルダID,添付ファイル名,担当者,送信フラグ
発生している問題・エラーメッセージ
エラーは出ませんが、メールが送られていないようです・・・。
該当のソースコード
/* スプレッドシートのシートを取得と準備 */
function myFunction(){
var mySheet=SpreadsheetApp.getActiveSheet(); //シートを取得
var dataRange = mySheet.getRange(2,2,14,12).getLastRow(); //範囲の指定
/* 各値の割当 */
for (var i=0;i<=dataRange.length;i++) {
var strTo=mySheet.getRange(i,2).getValue(); //送信先emailアドレス
var strCC=mySheet.getRange(i,3).getValue();//CCアドレス
var strSubject=mySheet.getRange(i,5).getValue();//メールタイトル
var strBody=mySheet.getRange(i,0).getValue()
+"\n"
+mySheet.getRange(i,1).getValue()
+"\n"
+"\n"
+mySheet.getRange(i,6).getValue()
+"\n"
+mySheet.getRange(i,7).getValue();//メール本文
var folder = DriveApp.getFolderById(mySheet.getRange(i,8).getValue());
var strFile= folder.getFilesByName(mySheet.getRange(i,9).getValue()); //ファイルIDを取得
var attachments=[];
while(strFile.hasNext()){
attachments.push(files.next())
};
/* メール送信 */
if(!mySheet.getRange(i,11).getValue())
MailApp.sendEmail({
to:strTo,//宛先
cc:strCC,//CC
subject:strSubject,//件名
body:strBody,//本文
attachment:strFile//添付ファイルの挿入
});
};
}
試したこと
当方プログラミングに関しては素人のため、同様な事例を探して見よう見まねでコードを書いてみましたが、なかなかうまくいかずに手こずっております。
指定範囲の上から順に且つ送信フラグがブランクでない場合に送信するという風にしたいのですが、また、dataRangeの指定のところで、getLastRowをつかうと指定の最終行だけが抽出されてしまうようで、上から順に、という操作がうまくできません。
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/10 22:24
2019/06/11 04:47
2019/06/11 04:47
2019/06/11 08:13