

gmailに来たメールを本文中のキーワードによってチャットワークの指定のグループに振り分けたいと思い、下記の様に作成したのですが、条件にあった内容のメールが来てもチャットワークに転送されません。

function main1だけだと正常に機能するのですが、複数の振り分けを作る場合どのように修正したらよいのでしょうか？  
どなたかご教授お願い致します。

[code]

    function main1() {
      //チャットワークトークン・ID
      const CW_TOKEN = "AAAAA";
      const CW_ROOM = BBBB;
      const CW_TO = 123456;
    
      //Gmailから特定条件のスレッドを検索しメールを取り出す
      var strTerms = 'is:unread "●●●● AROUND ■■■■"';
      var myThreads = GmailApp.search(strTerms, 0, 50); //条件にマッチしたスレッドを取得
      var myMsgs = GmailApp.getMessagesForThreads(myThreads); //スレッドからメールを取得する→二次元配列で格納
    
      //チャットワークAPI
      var client = ChatWorkClient.factory({
        token: CW_TOKEN
      });
    
      //各スレッド×メール
      for (var i = myMsgs.length - 1; i >= 0; i--) {
        var msgsInThread = myMsgs[i];
        for (var j = 0; j < msgsInThread.length; j++) {
          var msg = msgsInThread[j];
    
          //未読のみ
          if (msg.isUnread()) {
            //メールを既読にする
            msg.markRead();
    
            //メッセージ作成
            var msgBody = "[To:" + CW_TO + "]" +
                          "[info]" +
                              "[title]" + msg.getSubject() + "[/title]" +
                              msg.getFrom() + "[hr]" +
                              msg.getPlainBody().slice(0,400) + "[hr]" +
                              msg.getDate() +
                          "[/info]";
    
            //チャットワークに送る
            client.sendMessage({
              room_id: CW_ROOM,
              body: msgBody
            });
          }
        }
      }
    }
    
    
    function main2() {
      //チャットワークトークン・ID
      const CW_TOKEN = "AAAAA";
      const CW_ROOM = CCCC;
      const CW_TO = 789123;
    
      //Gmailから特定条件のスレッドを検索しメールを取り出す
      var strTerms = 'is:unread "●●●● AROUND ■■■■"';
      var myThreads = GmailApp.search(strTerms, 0, 50); //条件にマッチしたスレッドを取得
      var myMsgs = GmailApp.getMessagesForThreads(myThreads); //スレッドからメールを取得する→二次元配列で格納
    
      //チャットワークAPI
      var client = ChatWorkClient.factory({
        token: CW_TOKEN
      });
    
      //各スレッド×メール
      for (var i = myMsgs.length - 1; i >= 0; i--) {
        var msgsInThread = myMsgs[i];
        for (var j = 0; j < msgsInThread.length; j++) {
          var msg = msgsInThread[j];
    
          //未読のみ
          if (msg.isUnread()) {
            //メールを既読にする
            msg.markRead();
    
            //メッセージ作成
            var msgBody = "[To:" + CW_TO + "]" +
                          "[info]" +
                              "[title]" + msg.getSubject() + "[/title]" +
                              msg.getFrom() + "[hr]" +
                              msg.getPlainBody().slice(0,400) + "[hr]" +
                              msg.getDate() +
                          "[/info]";
    
            //チャットワークに送る
            client.sendMessage({
              room_id: CW_ROOM,
              body: msgBody
            });
          }
        }
      }
    }
    
    
    function main3() {
      //チャットワークトークン・ID
      const CW_TOKEN = "AAAAA";
      const CW_ROOM = DDDD;
      const CW_TO = 456789;
    
      //Gmailから特定条件のスレッドを検索しメールを取り出す
      var strTerms = 'is:unread "●●●● AROUND ■■■■"';
      var myThreads = GmailApp.search(strTerms, 0, 50); //条件にマッチしたスレッドを取得
      var myMsgs = GmailApp.getMessagesForThreads(myThreads); //スレッドからメールを取得する→二次元配列で格納
    
      //チャットワークAPI
      var client = ChatWorkClient.factory({
        token: CW_TOKEN
      });
    
      //各スレッド×メール
      for (var i = myMsgs.length - 1; i >= 0; i--) {
        var msgsInThread = myMsgs[i];
        for (var j = 0; j < msgsInThread.length; j++) {
          var msg = msgsInThread[j];
    
          //未読のみ
          if (msg.isUnread()) {
            //メールを既読にする
            msg.markRead();
    
            //メッセージ作成
            var msgBody = "[To:" + CW_TO + "]" +
                          "[info]" +
                              "[title]" + msg.getSubject() + "[/title]" +
                              msg.getFrom() + "[hr]" +
                              msg.getPlainBody().slice(0,400) + "[hr]" +
                              msg.getDate() +
                          "[/info]";
    
            //チャットワークに送る
            client.sendMessage({
              room_id: CW_ROOM,
              body: msgBody
            });
          }
        }
      }
    }
    
[/code]


CC BY-SA 4.0
2018-09-05T07:09:21.557
48109
2022-07-27T11:32:24.090
2022-07-27T11:32:24.090
3060
29991
question
google-apps-script
gmailに来たメールを本文中のキーワードによってチャットワークの指定のグループに振り分けたい


1点確認させてください。  
メール本文内に「A」があったらチャットワークの「X」グループ、BがあったらYグループという意味であっていますよね？

上記の前提が正しい場合、 main1、main2、main3では関数名とCW_ROOM、CW_TOしか変わっていないことが原因です。  
メールを検索する条件を設定している箇所↓

[code]

    var strTerms = 'is:unread "●●●● AROUND ■■■■"';
    
[/code]

ここをmain1、main2、main3で異なる値（振り分けたい条件）にする必要があります。

* * *

以下蛇足

今回の場合、条件をまとめて、実処理は関数化するのが良いのではないでしょうか？  
参考のコードです。（動かしていないです）

[code]

    function main() {
      //チャットワークトークン・ID
      const CW_TOKEN = "AAAAA";
      const CW_ROOM = BBBB;
      const CW_TO = 123456;
    
      //チャットワークAPI
      var client = ChatWorkClient.factory({
        token: CW_TOKEN
      });
    
      const list = [{
        "cw_room" : "BBBB",
        "cw_to" : "123456",
        "terms" : 'is:unread "●●●● AROUND ■■■■_1"'
      },
      {
        "cw_room" : "CCCC",
        "cw_to" : "789123",
        "terms" : 'is:unread "●●●● AROUND ■■■■_2"'
      },{
        "cw_room" : "DDDD",
        "cw_to" : "456789",
        "terms" : 'is:unread "●●●● AROUND ■■■■_3"'
      }]
    
      for(i = 0; i < list.length; i++) {
        var o = list[0]
        sub(o["cw_room"],o["cw_to"],o["terms"])
      }
    }
    
    function sub(cw_room, cw_to, terms) {
    
      //Gmailから特定条件のスレッドを検索しメールを取り出す
      var myThreads = GmailApp.search(terms, 0, 50); //条件にマッチしたスレッドを取得
      var myMsgs = GmailApp.getMessagesForThreads(myThreads); //スレッドからメールを取得する→二次元配列で格納
    
      //各スレッド×メール
      for (var i = myMsgs.length - 1; i >= 0; i--) {
        var msgsInThread = myMsgs[i];
        for (var j = 0; j < msgsInThread.length; j++) {
          var msg = msgsInThread[j];
    
          //未読のみ
          if (msg.isUnread()) {
            //メールを既読にする
            msg.markRead();
    
            //メッセージ作成
            var msgBody = "[To:" + cw_to + "]" +
                          "[info]" +
                              "[title]" + msg.getSubject() + "[/title]" +
                              msg.getFrom() + "[hr]" +
                              msg.getPlainBody().slice(0,400) + "[hr]" +
                              msg.getDate() +
                          "[/info]";
    
            //チャットワークに送る
            client.sendMessage({
              room_id: cw_room,
              body: msgBody
            });
          }
        }
      }
    }
    
[/code]


CC BY-SA 4.0
2019-02-08T06:30:21.747
52638
2019-02-08T06:30:21.747
13022
48109
answer