前提・実現したいこと
GASで、スプレッドシートに記載のメアドにメールを送るコードを作っています。
発生している問題・エラーメッセージ
function mail_test()
function gmail()
の2つのfunctionがあるのですが、mail_testとgmailそれぞれ単独でしか実行されないようです。
mail_testで、メールを送るメアドをスプレッドシートから抽出して、gmailで送信、としたいのですが・・・。
mail_testはうまく実行されているようですが、gmailを実行すると、addressが取得できていないためか、
Exception: メールを送信できませんでした: 受信者が指定されていません(行 46、ファイル「コード」)
というメッセージが表示されます。
mail_testで抽出したメアドがgmailにうまく渡せていないと考えているのですが。
一時、なぜか思い通りに動作したのですが、またうまくいかなくなってしまいました。
GASは取り組み始めたばかりで、基本的なことがわかっていないのですが・・・、すいません。
該当のソースコード
GASです。
function mail_test() {
//シートの情報
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheetByName('シート1');
var addr = ss.getSheetByName('アドレス管理');
const EValues = sheet1.getRange('E:E').getValues();
const lastRow = EValues.filter(String).length;
//件名と本文を取得
const body0 = 'Aから社内連絡です。\n'
const body1 = 'さんから';
const body2 = 'が';
const body3 = 'で届きましたのでご確認をお願いします。';
const options = 'さんに郵便物が届きました【A社内通知】';
//アドレスをループ
for(let i = 1; i <= lastRow; i++) {
//未送付の案内だけ抽出する(K列が空欄なら送付する。送付済は、K列に「済」と入力されている)
var blank = sheet1.getRange(i, 11);
if(blank.isBlank()){
//タイトル(日付と通知案内) //var title = sheet1.getRange(i, 2).getValue() + blank + sheet1.getRange(i, 5).getValue() + options; var title = sheet1.getRange(i, 5).getValue() + options; //本文 var body = body0 + sheet1.getRange(i, 3).getValue() + body1 + sheet1.getRange(i, 7).getValue() + body2 + sheet1.getRange(i, 8).getValue() + body3; //アドレス var address = sheet1.getRange(i, 6).getValue(); //「済」と入力 var done = '済' sheet1.getRange(i, 11).setValue(done); //メール送信 gmail(address, title, body);
}
}
}
function gmail(address, title, body) {
GmailApp.sendEmail(address, title, body);
}
### 試したこと 実行で、mail_test、gmail、どちらかを選択することになっていますが、 mail_test → gmail と続けて実行したいと思っているのですが、その方法がわからないです。 また、上述の通り、一時、うまく続けて実行できていたのですが、何でうまくいっていたのか、 そして、何でまたうまくいかなくなったのかがわかりません。 ### 補足情報(FW/ツールのバージョンなど) よろしくお願いいたします。 、
回答2件
あなたの回答
tips
プレビュー