質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

1回答

10098閲覧

【Google Apps Script】スプレッドシートからメールを送信できませんでした: 受信者が指定されていません

matsuo_o

総合スコア13

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

1クリップ

投稿2020/05/08 11:44

現状

メール送信の際に、エラーが出て正しく送信ができないです。

こちらの記事を参考にしました。
https://liapoc.com/bulk-transmission.html

どうしてなのでしょうか??

エラーメッセージ

Exception: メールを送信できませんでした: 受信者が指定されていません
at myFunction(コード:22:14)

22行目の「GmailApp.sendEmail」の部分がエラーみたいです。

ソースコード

gs

1function myFunction() { 2/* スプレッドシートのシートを取得と準備 */ 3var mySheet=SpreadsheetApp.getActiveSheet(); //シートを取得 4var rowSheet=mySheet.getDataRange().getLastRow(); //シートの最終行を取得 5 6/* ドキュメント「メール本文テスト」を取得する */ 7var docTest=DocumentApp.openById("XXXXXXXXXXXXXXXXXXXXXXXXX"); //ドキュメントをIDで取得 8var strDoc=docTest.getBody().getText(); //ドキュメントの内容を取得 9 10/* シートの全ての行について姓名を差し込みログに表示*/ 11for(var i=2; i<=rowSheet;i++){ 12 var strEmail=mySheet.getRange(i,2).getValue(); //メールアドレス 13 var strName=mySheet.getRange(i,3).getValue(); //氏名の情報を読み込み 14 var strBody=strDoc.replace(/{氏名}/g,strName); //氏名の情報に変換 15 16/* メール表題、fromアドレス、差出人名を準備 */ 17 var strSubject = strName +"様"; //件名 18 var strFrom="XXXXXX@gmail.com"; //From 19 var strSender="XXXXXXXXXXX"; //差出人 20 21 /* メールを送信 */ 22 GmailApp.sendEmail( 23 strEmail, //toアドレス 24 strSubject, //メールタイトル 25 strBody, //本文 26 { 27 from: strFrom, //fromアドレス 28 name: strSender //差出人 29 } 30 ); 31 } 32}

スプレッドシート

B列にメールアドレス
B1に、メールアドレスの文字、B2からメールアドレスがあります。

C列に氏名
C1に、氏名の文字、C2から氏名があります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

コード自体は間違ってないので普通に動くんじゃないかと。
そのエラーが出るということは、最終行までのB列にメールアドレスが空欄のセルが存在すると思われます。

rowSheetのログを見て、最終行がどうなってるか確認を。
仮にA列にナンバリングとかしていたり、下の方になにか入力されたセルがあると、最終行が想定外の行だったりするかもです。

投稿2020/05/10 12:29

sawa

総合スコア3002

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

matsuo_o

2020/05/11 03:05

sawa様 ご連絡ありがとうございます。 ソースコードではなく、スプレッドシートに問題があったようです。 頂いた内容通りに、B列のメールアドレスに空白のセル(下記のようなイメージ)がたくさんありました。 例) B1 メールアドレス B2 XXXX@XXX.com B3 XXXX@XXX.com B4 XXXX@XXX.com B5 (空白のセル) | B25(空白のセル) これらの空白のセルを消したところ、エラーなく送信できました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問