Gmailの設定を操作するAPIが開放されました


2016/7/7にGoogle公式のブログの記事Gmail API: New endpoints for settingsでGmailの設定を操作するAPIを追加した旨のアナウンスがされました。
※現在すでに実行可能です。

それによって何が変わる(できる)ようになるかをメモがてら解説をしようと思います。

対象読者

  • メールを送信するサービスの開発者
  • メールクライアントアプリの開発者
  • Google Apps for Work (Education)のシステム管理者

前提

情報元は全て公式のリファレンスのGmail APIと筆者の簡単な動作確認です。

APIの種類

フィルタの設定

ラベルのAPIでラベルを作成することも可能なのでそっちでサービスのラベルを作成しておき、fromにサービス側のEmail/処理にラベルを付けるフィルターの作成などに利用できるかも。
強制的にやったらまず嫌がられるので、当サービスを管理するためのラベルとフィルターを作りますか?みたいな確認してからならありかもしれない。

IMAP/POPの設定

メールクライアントアプリ側で設定を行ってもGmail側で有効になっていないと使えません。
そのためアプリ側からAPIを発行して有効にしてしまうとかですかね。

転送設定

メールの転送設定です。

これは3rdパーティにやらせるのはかなり危険なので流石に制限があります。
取得は一般のGmail(@gmail.com)でも利用可能ですが、
変更は Apps for Work(Education)かつサービスアカウント必須みたいです。

以下のようなエラーになります。

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "forbidden",
    "message": "Access restricted to service accounts that have been delegated domain-wide authority"
   }
  ],
  "code": 403,
  "message": "Access restricted to service accounts that have been delegated domain-wide authority"
 }
}

不在通知設定

有効にしていると設定したメッセージを返してくれる機能です。
勤怠管理するサービスとかで使うといいかも。

他のメールアドレスからのメール送信設定(署名の設定)

どのアドレスから送信できるかの設定とそれに紐づく署名の設定です。

今後追加するとアナウンスされているAPI

現在(2016/7/13時点)あるAPIは上に記載したやつだけですが、これから追加するとアナウンスされています。

アカウントへのアクセスを許可

メールの委任とか呼ばれてる機能ですね。
メールの送受信を代わりに行うことができます。

Google Apps for Work (Education)のシステム管理者向けの情報

Email Settings API

本APIの追加によりEmail Settings API2017/7/7に完全に廃止されるようです。
2017/11/15に完全に廃止されるようです。(延びたみたいです。2017/5/29記載)

移行ガイドも必ず見ましょう!

注意点

これらのAPIはAdmin SDK内のEmail Settings APIで提供されていた内容がベースです。
つまり今まではシステム管理者が独占して管理できていましたが、3rdパーティのアプリに取得・変更される恐れがあるということです。
ただGoogleが判断したAPIはサービスアカウント認証が必須みたいです。(転送設定の作成とか)

あとがき

これからGmail APIを使う方はこの辺の記事を見ると良いかと思います。
Google I/O 2014の裏でひっそり公開されたGmail APIを触ってみる
Google Gmail APIでメールを取得する