GAS
1 var threads = GmailApp.search('label:テスト'); 2 for (var th in threads) { 3 var msgs = threads[th].getMessages(); 4 for (var msg in msgs) { 5 GmailApp.sendEmail('aaa@gmail.com', 6 'from[' + msgs[msg].getFrom() + ']' + msgs[msg].getSubject(), 7 msgs[msg].getPlainBody(), 8 {attachments: msgs[msg].getAttachments()}); 9 } 10 }
18000通のメールを自動転送したいです。
しかし、90通程度で以下のエラーメッセージを出して止まります。
Exception: Service invoked too many times for one day: email.
どうすればいいでしょうか?
1日100通の制限があることは分かりました。1通送る度に15分のスリープを入れて180日間放置したいと思います。また途中で止まることが予測されますので送り終わったメールのラベルを自動的に削除して、自動的に別のラベルを付けたいです。
よろしくお願い致します。
追記
以下のスクリプトを時限式タイマーで毎日1回動かす設定にしてみました。
GAS
1 try{ 2 var objLabel = GmailApp.getUserLabelByName('aaa'); 3 var objSentLabel = GmailApp.getUserLabelByName('sent'); 4 var threads = GmailApp.search('label:aaa'); 5 for (var th in threads) { 6 var msgs = threads[th].getMessages(); 7 for (var msg in msgs) { 8 GmailApp.sendEmail('aaa@gmail.com', 9 'from[' + msgs[msg].getFrom() + ']' + msgs[msg].getSubject(), 10 msgs[msg].getPlainBody(), 11 {attachments: msgs[msg].getAttachments()}); 12 } 13 threads[th].addLabel(objSentLabel); 14 threads[th].removeLabel(objLabel); 15 } 16 } catch { 17 ; 18 }
これでどうでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/18 05:46
2021/09/18 05:47
2021/09/18 05:54 編集
2021/09/18 05:55