前提・実現したいこと
gmailに送られてきたカード決済のデータを
自動でスプレッドシートに張り付けていくこと
題名の通り
スプレッドシートに書き込むことが目標です。
なぜか、読み込めないのか作業がすぐ終わってしまいます。
何卒回答いただけると幸いです
発生している問題・エラーメッセージ
実行を何度してもエラーが出るわけでもなく一秒足らずで作業は終わるが、スプレッドシートには一言も書かれていません
エラーメッセージなし
該当のソースコード
googleappsscript
1function getPayments() { 2 // メール検索クエリを作成 3 const SUBJECT = 'ご利用のお知らせ【〇〇カード】'; // 利用お知らせメールの件名 4 const ADDRESS = 'noreply@samplecard.co.jp'; // お知らせメールの送信元 5 const LABEL_NAME = 'カード利用明細メール'; // ラベル名 6 const QUERY = 'subject:' + SUBJECT + ' from:' + ADDRESS + ' -label:' + LABEL_NAME; 7 8 // メールを検索 9 threads = GmailApp.search(QUERY); 10 11 // 該当メールがあった場合 12 if(threads.length > 0) { 13 const KEYWDS = ['利用日:', '利用金額:']; 14 const LABEL = GmailApp.getUserLabelByName(LABEL_NAME); 15 16 msgs = GmailApp.getMessagesForThreads(threads); 17 sheet = SpreadsheetApp.getActiveSheet(); 18 19 for(i=0; i<msgs.length; i++){ 20 // 本文を取得 21 plainBody = msgs[i][0].getPlainBody(); 22 sheet.appendRow([ 23 plainBody.match(/利用日:.*/)[0].replace(KEYWDS[0], ''), 24 plainBody.match(/利用金額:[\d,]+円/)[0].replace(KEYWDS[1], ''), 25 ]); 26 // 処理の完了後、ラベルを付与 27 threads[i].addLabel(LABEL); 28 }; 29 30 // 料金列に通貨表示を適用 31 amounts = sheet.getRange('B:B'); 32 setCurrencyLayout(amounts); 33 } 34} 35function setCurrencyLayout(range) { 36 range.setNumberFormat('[$¥-411]#,##0'); 37}
試したこと
ラベルの名前などの日本語に間違いがあるかと思ったため、gmail上の名前をコピーして貼り付けた
補足情報(FW/ツールのバージョンなど)
新しいgoogle apps script画面での編集を行いました
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。