Gmail 以外のクライアント向けに、Gmail は標準の IMAP、POP、SMTP プロトコルをサポートしています。Gmail の IMAP サーバー、POP サーバー、SMTP サーバーが拡張され、業界標準の OAuth 2.0 プロトコルによる認証がサポートされるようになりました。
プロトコル
IMAP、POP、SMTP は標準の Simple Authentication and Security Layer(SASL)を使用し、組み込みのネイティブ IMAP AUTHENTICATE
コマンド、POP AUTH
コマンド、SMTP AUTH
コマンドを使用してユーザーを認証します。SASL XOAUTH2 メカニズムを使用すると、クライアントは認証用の OAuth 2.0 認証情報を提供できます。SASL XOAUTH2 プロトコル ドキュメントでは、SASL XOAUTH2 メカニズムについて詳しく説明しています。また、プロトコルを実装したライブラリとサンプルも利用できます。
IMAP サーバー(imap.gmail.com:993
)と POP サーバー(pop.gmail.com:995
)の受信接続には 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 ライブラリを使用します。これらのライブラリが Simple Authentication and Security Layer(SASL)をサポートしている限り、Gmail でサポートされている SASL XOAUTH2 メカニズムと互換性があります。
OAuth 2.0 クライアントの実装の詳細については、SASL XOAUTH2 のプロトコル ドキュメントに加えて、OAuth 2.0 を使用した Google API へのアクセスもご覧ください。
ライブラリとサンプルのページでは、IMAP または SMTP で SASL XOAUTH2 メカニズムを使用した、さまざまな一般的な言語のコードサンプルを提供しています。