🙆

Gmail の Postmaster Tools API を使って迷惑メール報告率を監視する

2024/01/14に公開

Gmailの規制強化対応の一環で必要になりそうな、迷惑メールの報告率を監視したいので、サクッとまとめとして残す。
https://support.google.com/mail/answer/81126

API Documentはこれ
https://developers.google.com/gmail/postmaster/reference/rest/v1/domains.trafficStats/get

やることは

  • Google CloudでPostmaster Tools APIを有効にする
  • Postmaster Toolsが触れるService Accountを作成する
  • Postmaster ToolsにService Accountのメールアドレスを登録する
  • コード書く
  • Cloud Functionsにデプロイする
  • Cloud Scheduler作る

コードはここ
https://github.com/uewtwo/reportPostmasterTools/tree/main

この箇所で使ってるreportDateの日付をずらせば、前日も迷惑メール報告率が0.3%以上で連続していないかとかを監視できそう

const response = await tools.domains.trafficStats.get({
  name: `domains/${domain}/trafficStats/${reportDate}`,
})

レスポンスの形式はこんな感じ

{
  "name": "domains/YOUR_DOMAIN/trafficStats/20240106",
  "userReportedSpamRatio": 0.001,
  "domainReputation": "HIGH",
  "spfSuccessRatio": 1,
  "dkimSuccessRatio": 1,
  "inboundEncryptionRatio": 1
}

それぞれのプロパティの意味はこの辺りに
https://developers.google.com/gmail/postmaster/reference/rest/v1/domains.trafficStats

ざっくり説明

  • userReportedSpamRatio
    スパム報告されたメール件数と受信トレイに送信されたメール件数の比率、DKIMの認証が通ったメールのみ関連する
  • domainReputation
    送信したメールが持つドメインの評判、高いほど良い
  • spfSuccessRatio
    なりすましメールを除外したSPFの認証が成功した割合
  • dkimSuccessRatio
    なりすましメールを除外したDKIMの認証が成功した割合
  • inboundEncryptionRatio
    TLSを通過したメール件数と受信トレイに送信されたメール件数の比率、DKIM又はSPFの認証が通ったメールのみ関連する

※なお、記事公開時点(1/13)で3日前のデータまでしか取れず、かつ4~6日前のデータが存在していなかった。

Error: Requested entity was not found.

のエラーが出る場合は、PostmasterToolsのWebコンソールで、その日のデータがあるか見ると大抵ない。

Discussion