IMAP、POP、SMTP

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 へのアクセスもご覧ください。

ライブラリとサンプルのページでは、IMAP または SMTP で SASL XOAUTH2 メカニズムを使用するさまざまな一般的な言語でコードサンプルを提供しています。