いつもお世話になっております。
ネットを見たり本を見たりして対応しておりますがまだまだのところがあり投稿させていただきます。
【やりたいこと】以下3つのスクリプトを一斉に実行
①複数の企業に一斉メール配信
②催促案件のメールの為、完了していない企業にのみ配信
③複数の企業に異なるファイルを添付して送信
【できているところ】
・スプレッドに宛先リストと件名、本文のシートを作成し一斉送信
【できていないところ】
・未完了のところだけに送信するスクリプト
・異なるファイルを添付するスクリプト(格納はGoogleドライブ)
【現状のスクリプト】
function sendMail() {
//------------- (1)宛先リストから処理対象の行数を取得 -----------------------
var ss = SpreadsheetApp.getActiveSpreadsheet();
// 宛先リストシートを取得
var sheetAtesakiList = ss.getSheetByName("宛先リスト");
// データが入力されている範囲を取得
var datRange = sheetAtesakiList.getDataRange();
// 処理対象の行数を取得
var numRows = datRange.getNumRows();
//------------- (2)メール本文の情報を取得 -----------------------
// メール本文シートを取得
var sheetMailHonbun = ss.getSheetByName("メール本文");
// メール件名を取得
var subject = sheetMailHonbun.getRange(2, 3).getValue();
// メール本文を取得
var body = sheetMailHonbun.getRange(4, 3).getValue();
// 処理を開始する行番号を取得
var start = sheetAtesakiList.getRange(1, 5).getValue();
//------------- (3)メール送信処理 -----------------------
for (var i = start;i <= numRows;i++) {
// 対象行の差込データを取得
var sasikomiData1 = sheetAtesakiList.getRange(i, 6).getValue();
var sasikomiData2 = sheetAtesakiList.getRange(i, 7).getValue();
var sasikomiData3 = sheetAtesakiList.getRange(i, 8).getValue();
var sasikomiSubject = subject;
var sasikomiBody = body;
// 差込データ1が入力されている場合は、差込処理を行う(件名+本文) if (sasikomiData1 != "") { sasikomiSubject = sasikomiSubject.replace("{{差込データ1}}", sasikomiData1, "g"); sasikomiBody = sasikomiBody.replace("{{差込データ1}}", sasikomiData1, "g");} // 差込データ2が入力されている場合は、差込処理を行う if (sasikomiData2 != "") { sasikomiSubject = sasikomiSubject.replace("{{差込データ2}}", sasikomiData2, "g"); sasikomiBody = sasikomiBody.replace("{{差込データ2}}", sasikomiData2, "g");} // 差込データ3が入力されている場合は、差込処理を行う if (sasikomiData3 != "") { sasikomiSubject = sasikomiSubject.replace("{{差込データ3}}", sasikomiData3, "g"); sasikomiBody = sasikomiBody.replace("{{差込データ3}}", sasikomiData3, "g");} // 対象行の宛先を取得 var to = sheetAtesakiList.getRange(i, 2).getValue(); var cc = sheetAtesakiList.getRange(i, 3).getValue(); var bcc = sheetAtesakiList.getRange(i, 4).getValue(); MailApp.sendEmail(to,sasikomiSubject,sasikomiBody,{cc:cc, bcc:bcc}); // 配信状態を設定 sheetAtesakiList.getRange(i, 5).setValue("配信済");};
//ココマデ//
スプレッドシートの
宛先リストに完了ステータスを設置して「済」/「未」を選択した後、「未」の企業へメール配信
且つ送信する際はドライブに格納されている(空白の場合もあり)ファイルを添付して送信できるようにしたい。
ご教授いただければ幸いです。
※追加です。
”対象行の宛先を取得”のところに以下のスクリプトを記載したのですが
エンドレスでメールが配信されるという事象が発生していましました。
for(i=5; i< sheet.getLastRow(); i++){
var joukyou = sheet.getRange(i, 9).getValue();
if (joukyou !="未"){
var to = sheetAtesakiList.getRange(i, 2).getValue(); var cc = sheetAtesakiList.getRange(i, 3).getValue(); var bcc = sheetAtesakiList.getRange(i, 4).getValue(); MailApp.sendEmail(to,sasikomiSubject,sasikomiBody,{cc:cc, bcc:bcc}); // 配信状態を設定 sheetAtesakiList.getRange(i, 5).setValue("配信済");};
if (jouken == "済"){
break;}
}
縦の列を読みとり「済」であれば未配信、「未」であればその行の宛先、企業名を読み取り配信としたいと考えています。
回答1件
あなたの回答
tips
プレビュー