Senhas de app do Gmail, IMAP e a API: três formas de acesso e quando cada uma funciona
A maioria dos problemas de conexão com o Gmail termina no mesmo ponto: você precisa de uma senha de app, e não consegue criar uma até ativar a verificação em duas etapas. É aqui que isso se encaixa entre as três formas pelas quais um script ou cliente pode realmente acessar uma caixa de entrada.
Avery BennettO problema mais comum com o Gmail não é um problema do Gmail. Um cliente ou script recebe a senha da conta, a conexão é recusada, e a conclusão óbvia é que a senha está errada. Não está. O Google parou de aceitar senhas de contas em clientes de e-mail, e o que ele quer em vez disso é uma senha de aplicativo.
Senhas de aplicativo e o pré-requisito que ninguém menciona
Uma senha de aplicativo é uma credencial separada, gerada dentro da conta, que um único cliente usa no lugar da senha de login. Três coisas sobre ela explicam quase toda busca por "não funciona":
- Você não pode criar uma até ativar a verificação em duas etapas. Essa é a resposta para a maioria delas. A opção de gerar uma senha de aplicativo simplesmente não existe em uma conta sem o segundo fator, então as pessoas procuram uma página que ainda não está lá. Ative a verificação em duas etapas primeiro e a opção aparece.
- Ela é mostrada uma única vez. Gerada, exibida e não recuperável depois. Perdê-la significa gerar outra, não procurá-la.
- Ela é exibida com espaços e inserida sem eles. Dezesseis caracteres em quatro grupos. Alguns clientes lidam com os espaços e outros não, e isso sozinho responde por boa parte das falhas em uma senha que, fora isso, está correta.
Elas são geradas na seção de segurança da conta Google, não nas configurações do próprio Gmail, que é o outro motivo pelo qual as pessoas não encontram a página.
Se você comprou uma conta e o anúncio menciona uma senha de aplicativo, é essa string que vai no cliente. A senha de login da conta não vai funcionar ali, e tentar repetidamente é como você atrai verificação adicional que não queria.
Os três caminhos de acesso
Login pela web
Um navegador, uma senha, um segundo fator se estiver configurado. Ótimo para uma pessoa, ruim para um script. O login automatizado pelo fluxo web esbarra em desafios, avisos de dispositivo desconhecido e às vezes verificação por telefone, porque esse fluxo é monitorado exatamente para esse padrão. Quando um script "não consegue logar" mas as credenciais estão corretas, esse descompasso geralmente é o motivo.
IMAP e SMTP
Os protocolos de e-mail, falados por todo cliente de e-mail e toda biblioteca de e-mail. Exige a senha de aplicativo descrita acima. Melhor para ler uma caixa de entrada, aguardar uma mensagem ou enviar, sem construir nada.
Configurações práticas: IMAP na porta 993 com SSL, SMTP na porta 587 com STARTTLS, e o endereço completo como nome de usuário. Note que o acesso IMAP pode estar desativado por padrão em algumas contas e é habilitado nas configurações do próprio Gmail, que é um interruptor separado da senha de aplicativo e vale a pena verificar quando a credencial está definitivamente certa.
A API do Gmail
Uma interface programática de verdade, acessada via OAuth2. Você registra um projeto, configura um cliente OAuth, conclui o fluxo de consentimento uma vez e recebe tokens que seu programa usa daí em diante.
Duas vantagens reais sobre o IMAP: as permissões são limitadas, então um programa pode receber acesso somente leitura em vez de controle total, e você recebe dados de mensagem estruturados em vez de parsear e-mail bruto. Dois custos reais: a configuração é genuinamente mais trabalhosa, e as telas de consentimento têm regras próprias de revisão dependendo do que você pede.
Use para algo que você está construindo e mantendo. Para ler um código de uma caixa de entrada, IMAP é a resposta proporcional.
Escolhendo, em uma linha cada
- Uma pessoa verificando e-mail: a web, ou qualquer cliente via IMAP.
- Um script lendo mensagens: IMAP com senha de aplicativo. Menos configuração, funciona em qualquer lugar.
- Software que você está construindo: a API, para permissões limitadas e dados estruturados.
- Um script dirigindo a interface web: evite. O atrito que você encontra é deliberado e não vai embora.
O que isso significa ao comprar uma caixa de e-mail
Dois campos em um anúncio correspondem ao que foi dito acima, e não são a mesma coisa.
Uma senha de aplicativo incluída significa que o trabalho de verificação em duas etapas e geração já foi feito e você pode conectar um cliente imediatamente. Uma entrega via OAuth2 é o caminho da API, e ali completude é o que importa: um refresh token sem o client id e o secret contra os quais foi emitido vai funcionar até o access token atual expirar e então parar permanentemente. Essa falha chega muito depois de qualquer janela de garantia fechar, então a verificação não é "conecta agora" mas "consigo completar um refresh".
Vale saber sobre preço: em todo o catálogo de e-mail, acesso por protocolo está entre os atributos mais baratos medidos, enquanto atributos de verificação como verificação em duas etapas e verificação por SMS são os mais caros, a cerca de três vezes o preço médio e quase três vezes, respectivamente. Acesso é barato; ser verificado não é.
Anúncios de Gmail, com as tags de senha de aplicativo e OAuth2 filtráveis, estão na prateleira de Gmail.
