IMAP、POP 和 SMTP

对于非 Gmail 客户端,Gmail 支持标准的 IMAP、POP 和 SMTP 协议。Gmail IMAP、POP 和 SMTP 服务器进行了扩展,以支持通过业界标准的 OAuth 2.0 协议进行授权。

协议

IMAP、POP 和 SMTP 使用标准的简单身份验证和安全层 (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 库完成的。只要这些库支持简单身份验证和安全层 (SASL),就应该与 Gmail 支持的 SASL XOAUTH2 机制兼容。

除了 SASL XOAUTH2 协议文档之外,您可能还需要参阅使用 OAuth 2.0 访问 Google API,详细了解如何实现 OAuth 2.0 客户端。

库和示例页面提供了结合使用 SASL XOAUTH2 机制和 IMAP 或 SMTP 且支持各种热门语言的代码示例。