前提・実現したいこと
Gmailへ返ってくるエラーメールを件名とメールアドレスを元にラベル:errorMailで振り分けをしていますが、エラーメール内の下記、太文字メール部分のメールアドレスとスプレッドシート のメールアドレスを参照しシートのA列を1→0へ変えたいです。
やりたいこと:
ラベルで振り分けられた未読のエラーメールの内容からメールアドレスを取得
↓
スプレッドシートと参照し同じメールアドレスが書いてある行のA列を1→0へ変更
↓
処理の完了したメールを既読へ変更
下記に実際届くエラーメールと処理後のスプレットシートのイメージを記載しております。
〈件名〉
Returned mail: see transcript for details
〈本文〉
The original message was received at Thu, 28 May 2020 00:03:08 +0900 (JST)
from abcde.ne.jp(サーバーからのメールです) [27.133.134.231]
----- The following addresses had permanent fatal errors -----
<12345@i.softbank.jp>
(reason: 550 Invalid recipient: ~~12345~~@i.softbank.jp)
----- Transcript of session follows -----
... while talking to msv.softbank.jp.:
>>> DATA
<<< 550 Invalid recipient: ~~12345~~@i.softbank.jp
550 5.1.1 ~~12345~~@i.softbank.jp... User unknown
<<< 503 No recipients specified
スプレッドシート
シート名「シート1」
|送信(1:可2:不可)|メールアドレス|名前|列1|列2|列3|列4|列5|列6|列7|列8|列9|列10|
|:--|:--:|--:|
|1|12345@i.softbank.jp|テラテイル|...|...|...|...|...|...|...|...|...|...|||
処理完了後↓
|送信(1:可2:不可)|メールアドレス|名前|列1|列2|列3|列4|列5|列6|列7|列8|列9|列10|
|:--|:--:|--:|
|0|12345@i.softbank.jp|テラテイル|...|...|...|...|...|...|...|...|...|...|||
GoogleAppsScript
1function getMail01(){ 2 var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet(); 3 4// シート名を記入。 5 var objSheet = objSpreadsheet.getSheetByName("シート1"); 6 var sheet = SpreadsheetApp.setActiveSheet(objSheet); 7 var start = 0; 8 9 // 取得するメールの最大件数 10 var max = 100; 11 12 // Gmailのラベル名 13 var threads = GmailApp.search('label:errorMail is:unread',start,max); 14 15// メールからメールアドレスを取り出す// 16 for(var i = 0; i < Messages.length; i++) { 17 for(var j = 0; j < Messages[i].length; j++) { 18 19 var body = Messages[i][j].getPlainBody(); 20 var date = threads[i].getMessages()[j].getDate(); 21 22 var regName = new RegExp('errors -----' + '.*'); 23 var Name = body.match(regName)[0].replace('errors -----', '').replace('\r', ''); 24 25// 同じメールを読み込まないように、メッセージを既読にする 26 threads[i].markRead(); 27
試したこと
当方非プログラマーであり、サンプルコードなど参考になるコードを検索しても全く出てこなかったためつぎはぎのコードを書くことしかできませんでした。
至らない点が多いかと思いますが、何卒お教え願います。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。