1時間毎にGmailを検索して「問い合わせ」メールをチャットワークに知らせるコードを書いていたが、いつからか検索する時間の区切りが働かなくなってしまった。
let time = parseInt((now.getTime() - 1 * 60 * 60 * 1000) / 1000);//unix時間
let query = ' subject: "お問い合わせ" -"Re:" after:' + time;
let myThreads = GmailApp.search(query,0,5);
こんな感じで書いていて、最初はちゃんと動いていたのに。。。
なぜかは分からないけど、after:を一番最初に持ってきたらまた動くようになった。
let query = ' after:' + time +'subject: "お問い合わせ" -"Re:" ';
保存し直せばよかっただけかもしれない。
ちなみにこのコード、メールの受信に遅延があると抜け落ちてしまう可能性がある。
とくに別のアドレスをFetchで取りにいっている場合、送信時間から30分以上の遅れが出ることもあり使えない。
そこで、ヘッダに含まれるX-Receivedから受信日時を取得するように変更した。(X-Receivedはサーバによっては記録がない場合もあるようだが、Gmailにはある。)