Gmail 以外のクライアント向けに、Gmail は標準の IMAP、POP、SMTP プロトコルをサポートしています。Gmail の IMAP サーバー、POP サーバー、SMTP サーバーが拡張され、業界標準の OAuth 2.0 プロトコルによる認証がサポートされるようになりました。
プロトコル
IMAP、POP、SMTP では、標準の Simple Authentication and Security Layer(SASL)(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 メカニズムを使用した、さまざまな一般的な言語のコードサンプルを提供しています。