Testar a conexão IMAP
Quando o teste de acesso reprova uma conta, a pergunta é sempre a mesma: o problema é a rede, a porta ou a senha? Dá para responder isso em um minuto, do seu próprio computador, antes de abrir chamado com qualquer provedor.
Primeiro: a porta responde?
Este teste não usa senha nenhuma. Ele só pergunta se existe alguém atendendo naquele endereço e naquela porta.
Windows (PowerShell)
Abra o menu Iniciar, digite PowerShell e abra. Não precisa ser como administrador.
Test-NetConnection imap.servidor.com.br -Port 993
A linha que importa é a última:
ComputerName : imap.servidor.com.br
RemoteAddress : 203.0.113.10
RemotePort : 993
TcpTestSucceeded : True
TcpTestSucceeded : True significa que a porta está aberta e o caminho
até ela está livre. False aponta para firewall, endereço errado ou
servidor fora do ar — e nesse caso a senha nem chegou a ser testada.
Linux e macOS
nc -vz imap.servidor.com.br 993
Se o nc não estiver instalado, o próprio bash resolve:
timeout 5 bash -c '</dev/tcp/imap.servidor.com.br/993' && echo aberta || echo fechada
Segundo: o login funciona?
Aqui a senha entra. O comando muda conforme a porta ter criptografia ou não — e é por isso que telnet não serve para a porta 993: ele fala texto puro, e o 993 espera TLS desde o primeiro byte.
Porta 993, com SSL (o caso normal)
openssl s_client -crlf -quiet -connect imap.servidor.com.br:993
O openssl existe no Linux, no macOS e no Windows moderno (dentro do
PowerShell, se você tiver o Git ou o OpenSSL instalados). Depois do monte de linhas
do certificado, o servidor se apresenta e você digita, uma linha por vez:
* OK [CAPABILITY IMAP4rev1 ...] Servidor pronto
a1 LOGIN nome@empresa.com.br SuaSenha
a1 OK LOGIN completed.
a2 LIST "" "*"
* LIST (\HasNoChildren) "." INBOX
* LIST (\HasNoChildren) "." INBOX.Enviados
a2 OK LIST completed.
a3 LOGOUT
Os a1, a2, a3 são etiquetas que você escolhe —
o IMAP exige uma em cada comando, para casar pergunta e resposta. Qualquer texto serve.
Senha com espaço ou caractere especial? Coloque entre aspas duplas:
a1 LOGIN nome@empresa.com.br "se nha com espaço". Se a senha tiver aspas
duplas, este teste manual fica confuso — use o curl, mais abaixo.
Porta 143, sem criptografia
telnet imap.servidor.com.br 143
A conversa é idêntica à de cima. No Windows, o cliente de telnet vem desligado de
fábrica: ligue em Painel de Controle → Programas → Ativar ou desativar recursos
do Windows → Cliente Telnet, ou use o Test-NetConnection para a
porta e o curl para o login.
Na porta 143 a senha viaja em texto puro. Qualquer um no caminho consegue lê-la. Use esse teste só para diagnóstico, dentro de uma rede confiável, e troque a senha depois se tiver dúvida. Para migrar, prefira sempre 993 com SSL.
Porta 143 com STARTTLS
Alguns servidores só aceitam login depois de subir a criptografia na mesma porta 143:
openssl s_client -crlf -quiet -starttls imap -connect imap.servidor.com.br:143
O teste mais rápido de todos: curl
Uma linha, conecta, autentica e lista as pastas. Funciona igual no Windows 10 ou 11
(o curl já vem instalado), no Linux e no macOS:
curl -v --url "imaps://imap.servidor.com.br/" --user "nome@empresa.com.br:SuaSenha"
E para ver quantas mensagens existem na caixa de entrada:
curl --url "imaps://imap.servidor.com.br/INBOX" --user "nome@empresa.com.br:SuaSenha" --request "STATUS INBOX (MESSAGES)"
Sem -v, silêncio é boa notícia: autenticou. Com erro, a resposta do
servidor aparece inteira.
“O PowerShell não deixa executar” — a política de execução
Se você digitou os comandos acima um a um, isso não vai acontecer: a política
de execução do Windows não bloqueia comandos digitados, só arquivos de script
(.ps1). Ela aparece quando você junta vários comandos num arquivo para
rodar de uma vez, e a mensagem é esta:
... não pode ser carregado porque a execução de scripts
foi desabilitada neste sistema.
A saída é liberar a execução só na janela que está aberta. Feche o PowerShell e a permissão morre com ele — nada fica alterado no computador:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
Ele pergunta se você confirma; responda S (ou A para não
perguntar de novo naquela janela). Depois disso, rode o seu script normalmente.
Evite as receitas que mudam a máquina inteira. Muita instrução na internet
manda rodar Set-ExecutionPolicy Bypass sem o -Scope Process,
ou com -Scope LocalMachine. Isso deixa o computador aceitando qualquer
script, para sempre, e exige PowerShell como administrador. O -Scope
Process resolve o mesmo problema e some sozinho.
Para ver como está hoje, sem mudar nada:
Get-ExecutionPolicy -List
E se alguém já tiver mexido na máquina e você quiser voltar ao padrão do Windows — este precisa de PowerShell aberto como administrador:
Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy Restricted
Lendo a resposta do servidor
| Resposta | O que significa | O que fazer |
|---|---|---|
* OK na primeira linha | O servidor IMAP está no ar e aceitou a conexão | Siga para o login |
a1 OK LOGIN completed | Usuário e senha corretos | Nada — o problema está em outro lugar |
a1 NO [AUTHENTICATIONFAILED] | Usuário ou senha recusados | Teste com o endereço completo e com a parte antes do @; verifique se a conta exige senha de aplicativo |
a1 NO [ALERT] Too many …connections | Limite de conexões simultâneas | Reduza as migrações em paralelo nas opções do lote |
a1 BAD | Comando malformado — quase sempre aspas na senha | Use o curl em vez do teste manual |
Connection refused | Ninguém atende naquela porta | Confirme o endereço e a porta com o provedor |
Connection timed out | Firewall engolindo o pacote no meio | Teste de outra rede; muitos provedores bloqueiam portas de e-mail em links residenciais |
certificate verify failed | Certificado autoassinado ou vencido | Ajuste o modo de criptografia nas opções avançadas do lote |
self signed certificate | O mesmo caso | O mesmo ajuste |
Descobrindo o endereço do servidor pelo DNS
Quando ninguém sabe qual é o servidor IMAP, o DNS costuma contar. Comece perguntando quem recebe o e-mail do domínio. No PowerShell:
Resolve-DnsName -Type MX empresa.com.br
E, se existir, o registro que entrega o endereço do IMAP de bandeja:
Resolve-DnsName -Type SRV _imaps._tcp.empresa.com.br
No Linux ou macOS, os mesmos dois:
dig +short MX empresa.com.br
dig +short SRV _imaps._tcp.empresa.com.br
O MX diz quem recebe o e-mail do domínio hoje — se ele aponta para
…mail.protection.outlook.com, é Microsoft 365; se aponta para
…google.com, é Google Workspace; nos dois casos o caminho é
OAuth, e não senha. O registro SRV, quando
existe, entrega o endereço e a porta do IMAP de bandeja.