Gmail 以外のクライアントでは、Gmail は標準の IMAP、POP、SMTP プロトコルをサポートしています。Gmail の IMAP、POP、SMTP サーバーは、業界標準の OAuth 2.0 プロトコルによる認証に対応するよう拡張されています。
プロトコル
IMAP、POP、SMTP では、標準の IMAP AUTHENTICATE
、POP AUTH
、SMTP AUTH
コマンドに組み込まれている標準の SASL(Simple Authentication and Security Layer)を使用してユーザーを認証します。SASL XOAUTH2 メカニズムを使用すると、クライアントは認証用の OAuth 2.0 認証情報を提供できます。SASL XOAUTH2 メカニズムについて詳しくは、SASL XOAUTH2 プロトコルのドキュメントをご覧ください。このプロトコルを実装したライブラリとサンプルも提供されています。
imap.gmail.com:993
の IMAP サーバーと pop.gmail.com:995
の POP サーバーへの受信接続では SSL が必要です。送信 SMTP サーバー smtp.gmail.com
は TLS をサポートしています。クライアントが書式なしテキストで始まる場合は、STARTTLS コマンドを発行する前に、ポート 465
(SSL の場合)またはポート 587
(TLS の場合)を使用します。
セッションの長さの上限
Gmail の POP セッションは約 7 日間に制限されています。Gmail の IMAP セッションは約 24 時間に制限されています。セッションが OAuth 認証情報を使用して認証された場合、その有効期間は、使用されたアクセス トークンの有効期間(通常は 1 時間)に限定されます。この場合のセッションとは、1 つの継続的な TCP 接続です。
時間が経過してセッションが期限切れになると、Gmail は接続が終了し、セッションの有効期限が切れたことを示すメッセージを表示します。その後、クライアントは再接続して再度認証し、続行できます。OAuth を使用している場合は、使用しているアクセス トークンが有効であることを確認します(1 時間以上経過したアクセス トークンを使用しようとすると、無効になることがあります)。
ライブラリとサンプル
IMAP または POP を使用したメールへのアクセスと SMTP を使用したメールの送信は、多くの場合、便宜上既存の IMAP と SMTP ライブラリを使用して行われます。これらのライブラリが SASL(Simple Authentication and Security Layer)をサポートしている限り、Gmail でサポートされている SASL XOAUTH2 メカニズムと互換性があるはずです。
SASL XOAUTH2 プロトコルに関するドキュメントに加えて、OAuth 2.0 クライアントの実装について詳しくは、OAuth 2.0 を使用した Google API へのアクセスもご覧ください。
ライブラリとサンプルのページでは、SASL XOAUTH2 メカニズムを使用して IMAP または SMTP を使用する一般的な言語のコードサンプルが提供されています。