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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Google Apps Script

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

Q&A

解決済

1回答

9422閲覧

GASのメール送信で送信元をnoreplyにするとメールが2通きてしまう

ran_net

総合スコア17

Google Apps Script

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

0グッド

0クリップ

投稿2019/02/12 07:29

##解決したいこと

以前、こちらでスプレッドシートでGASをつかったメール送信の方法をお伺いしました。

以下のコードで正常に動いていたのですが、
送信元を個人のメールアドレスではなくnoreply@~のメールアドレスにしたいと思い、
最後の行に{noReply: true}を追加しました。

しかし、メールは受信者に正常に送信されるのですが同じメールが2通連続で送信されてしまいます。

##仕様

過去質問のような仕様には変わりません。

Bの値がAに変更されたら、Aにnoreply@~でメールが届く・・・
Cの値がBに変更されたら、Bにnoreply@~でメールが届く・・・

といった感じです。

GAS

1 2function onEdit(e) { 3 Logger.log(JSON.stringify(e)); 4 //if(e.range.getSheet().getName() !== "") { return; } //特定のシート名でなければ中断 5 SpreadsheetApp.getActiveSpreadsheet(); 6 7 //通知対象者と対応するメール通知先を連想配列で格納 8 const recipients = { 9 'A': 'aaaaaa@abc.com', 10 'B': 'bbbbbb@bbb.co.jp', 11 'C': 'cccccc@ccc.co.jp', 12 'D': 'dddddd@ddd.co.jp' 13 14 }; 15 16 //メールの件名と本文を指定 17 const subject = '【更新】'+ e.source.getName()+'【要確認】'; 18 const body ='担当が変わりました。再度確認お願いします。'; 19 20 MailApp.sendEmail(recipients[e.value], subject, body,{noReply: true}); 21 22} 23

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

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

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

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

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

papinianus

2019/02/12 07:40

トリガが二重に登録されていることはないですか?
ran_net

2019/02/12 08:03

トリガは二重に登録していませんでした。 すべてのプロジェクトのトリガを確認したところ、「無効なトリガ」?のようなものが2,3個あったので全て削除して実行してみるとメールは1通になりました。 しかし、再度実行してみるとやはり2通ずつ届いてしまいます。。
macaron_xxx

2019/02/12 09:47

{noReply: true}を外すと1通しか送られないのは確定事項ですか? もう1度試して結果を教えてください。
ran_net

2019/02/13 01:20

{noReply: true}を外てみると、受信メールには1通しか届いていないように見えていましたが、 今Gmailで「全てのメール」を確認したところ、シートを共有している他の管理アドレスからも送られているようでした・・! (自分(現オーナー)のアドレスと共有している管理者(元オーナー)のアドレスから1通ずつ=計2通!)
papinianus

2019/02/13 01:37

偶然的ではあるのですが、トリガなしでテストしたシートにも元オーナーがいましたがそうはなっていません。元オーナー側にトリガーがあるという趣旨でしょうか?
ran_net

2019/02/13 02:08

そもそもトリガーのオーナーの仕組み?が理解できていませんでした・・・ てっきりシートの権限を変更すると、同時にトリガのオーナーも自動的に変更されるのかと思っていました><(そう考えるとトリガを再度設定すること自体がおかしい行為でしたね・・・) 元オーナーの管理者でログインしトリガを確認たところ、管理者がオーナーのトリガがあることに気付きました・・ つまり、現オーナーの私、元オーナーの管理者の両方でonEditのトリガ設定をしており二重になってたということです。(papinianusさんに最初に返答いただいたき、確認したときは現オーナーの自分のトリガしか確認してませんでした・・・) お騒がせしました。。。
ran_net

2019/02/13 02:09

管理者側のトリガを全て消して、{noReply: true}を付けたところ ちゃんと1通だけが届くようになりました! ありがとうございます。
papinianus

2019/02/13 02:16

自己回答&自己解決をお願いします。
guest

回答1

0

自己解決

トリガが二重に設定してしまっていたことが原因

今現在オーナーとして編集している自分自身アカウントとは
別に元オーナーの管理者のアカウントでも同様のトリガが作成されていた。

(つまり、現オーナーの私、元オーナーの管理者の両方で
onEditのトリガ設定をしており二重になっていたということです)

管理者側のトリガを全て消して、{noReply: true}を付けたところ1通だけが届くようになりました!

トリガのオーナーの仕組みをいまいち理解しておらず
シートの権限を変更すると自動的にトリガの権限も変更されると勘違いしていました・・

投稿2019/02/13 02:29

ran_net

総合スコア17

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問