1

Google スクリプト コードに少し問題があります。件名に「イベント」が含まれて送信された電子メールを自動的に取得し、テキストを解析してカレンダーに追加するスクリプトを作成しようとしています。電子メールをラベル「イベント」に追加してから、ラベルを削除するフィルターがあります。

スクリプトは正常に動作しており、以下に掲載されています。毎分トリガーしています。しかし、毎日、4 行目 [GmailApp.getUserLabelbyName] で gmail 読み取りのクォータを超えたという大量の失敗通知メールを受け取ります。グーグルで調べてみましたが、これ以上の詳細は見つかりませんでした。

そのため、クォータ Web サイトによると、1 日あたりの読み取りは 10,000 に制限されています。これは、「イベント」ビンにメールがまったくない状態で失敗しているため、実際のメールは読まれていないようです。カレンダーは 1 分に 1 回、つまり 1 日 1,440 回アクセスする必要があります。

では、なぜ gmail 読み取りのクォータ エラーが発生するのですか? 「gmail の読み取り」とは、gmail へのアクセス (ラベル変数の取得) またはメール本文の読み取り (getThreads)、またはその両方を意味しますか?

どんな助けでも大歓迎です。ありがとう!

関数 MakeEvents() {

var label = GmailApp.getUserLabelByName("Events");            
if (label) {
  var threads = label.getThreads();    
  for (var x in threads) {      
    var messages = threads[x].getMessages();

    for (var y in messages) {

    var myHTMLContent = messages[y].getBody();
    textContent=getTextFromNode(Xml.parse(myHTMLContent, true).getElement());

    CalendarApp.getDefaultCalendar().createEventFromDescription(textContent);  

    }      
    threads[x].removeLabel(label);
  }
} 

}

function getTextFromNode(x) {
switch(x.toString()) {
case 'XmlText': return x.toXmlString();
case 'XmlElement': return x.getNodes().map(getTextFromNode).join('');
default: return '';

} }

4

0 に答える 0