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.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 ライブラリを使用して行われます。これらのライブラリで Simple Authentication and Security Layer(SASL)がサポートされていれば、Gmail でサポートされている SASL XOAUTH2 メカニズムと互換性があるはずです。
OAuth 2.0 クライアントの実装について詳しくは、SASL XOAUTH2 のプロトコルのドキュメントに加え、Using OAuth 2.0 to Access Google APIs をご覧ください。
ライブラリとサンプルのページでは、IMAP または SMTP のいずれかで SASL XOAUTH2 メカニズムを使用する、一般的な言語のコードサンプルを提供しています。