teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

メールから文字列を検出できない場合のエラーの修正をしました。

2021/06/11 10:14

投稿

gas.engine
gas.engine

スコア608

answer CHANGED
@@ -1,8 +1,11 @@
1
1
  複数メール、1メールの中に複数のデータがある場合に対応するとこんなかんじになります。
2
2
 
3
+ **追記:**メールから一切文字列を検出できない場合エラーが出るようです。
4
+ 以下のように修正いたしました。
5
+ 検出されない場合エラーはでずシートも更新されません。
3
6
  ```
4
7
  function myFunction(){
5
- var mailQuery = 'from:●●●●@gmail.com after:2021/06/01';
8
+ var mailQuery = 'from:●●●●@gmail.com after:2021/06/11';
6
9
  var threads = GmailApp.search(mailQuery);
7
10
  var messages = GmailApp.getMessagesForThreads(threads);
8
11
  var sheet = SpreadsheetApp.getActiveSheet();
@@ -12,6 +15,11 @@
12
15
  var lastRow = sheet.getLastRow();
13
16
 
14
17
  const regex =/案件名:(.*?)\r\n(.*?)業種:(.*?)\r\n(.*?)地域:(.*?)\r\n/g;
18
+
19
+ //文字列を発見できない場合次へ飛ぶ
20
+ if(!plainBody.match(regex)){
21
+ continue;
22
+ }
15
23
 
16
24
  var data = plainBody.match(regex).map(x=>{
17
25
  var title = /案件名:(.*?)\r\n/.test(x)? RegExp.$1 : '';