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 '';
} }