No caso de clientes que não são do Gmail, é possível usar os protocolos padrão IMAP, POP e SMTP. Os servidores IMAP, POP e SMTP do Gmail foram estendidos para oferecer suporte à autorização pelo protocolo OAuth 2.0 padrão do setor.
Protocolo
O IMAP, o POP e o SMTP usam a Camada de autenticação e segurança simples (SASL, na sigla em inglês) padrão, que usa os comandos nativos IMAP AUTHENTICATE
, POP AUTH
e SMTP AUTH
para autenticar usuários. O mecanismo SASL XOAUTH2 permite que os clientes forneçam credenciais OAuth 2.0 para autenticação. A documentação do protocolo SASL XOAUTH2 descreve detalhadamente o mecanismo SASL XOAUTH2 e as bibliotecas e amostras que implementaram o protocolo estão disponíveis.
As conexões de entrada com o servidor IMAP em imap.gmail.com:993
e com o servidor POP em pop.gmail.com:995
exigem SSL. O servidor SMTP de saída, smtp.gmail.com
, é compatível com TLS. Se o cliente começar com texto simples, antes de emitir o comando STARTTLS, use a porta 465
(para SSL) ou a porta 587
(para TLS).
Limites de duração de sessão
As sessões POP do Gmail são limitadas a cerca de sete dias. As sessões IMAP do Gmail são limitadas a cerca de 24 horas. Quando a sessão é autenticada com as credenciais do OAuth, o limite de validade do token de acesso usado geralmente é de uma hora. Uma sessão nesse contexto é uma conexão TCP contínua.
Quando o tempo acaba e a sessão expira, o Gmail encerra a conexão com uma mensagem informando que a sessão expirou. Depois disso, o cliente pode se reconectar, autenticar novamente e continuar. Se você estiver usando o OAuth, verifique se o token de acesso usado é válido. Se você tentar usar um token com mais de 1 hora, ele poderá ser inválido.
Bibliotecas e amostras
Muitas vezes, é possível acessar e-mails usando IMAP ou POP e enviar e-mails usando SMTP com as bibliotecas IMAP e SMTP existentes. Desde que essas bibliotecas ofereçam suporte à camada de autenticação e segurança simples (SASL, na sigla em inglês), elas precisam ser compatíveis com o mecanismo SASL XOAUTH2 compatível com o Gmail.
Além da documentação do protocolo SASL XOAUTH2, leia também Como usar o OAuth 2.0 para acessar as APIs do Google para mais informações sobre como implementar um cliente OAuth 2.0.
A página Bibliotecas e amostras oferece amostras de código em várias linguagens conhecidas usando o mecanismo SASL XOAUTH2 com IMAP ou SMTP.