Guide
Configurações SMTP do Outlook: servidor, porta e TLS
Referência completa de SMTP do Outlook para desenvolvedores: configurações do smtp.office365.com, porta 587 com STARTTLS, requisitos de Modern Auth (OAuth 2.0) desde que a Microsoft removeu o Basic Auth em outubro de 2022, limites de envio do Microsoft 365 e do Outlook.com, códigos de erro SMTP comuns e uma alternativa sem configuração.
Written by Nick Barraclough Product Manager
Referências de comandos usadas neste guia: nylas email send para enviar sem SMTP, nylas auth login para autenticação OAuth e nylas email list para ler e-mails.
Quais são as configurações do servidor SMTP do Outlook?
O servidor SMTP do Outlook é smtp.office365.com. A porta 587 com STARTTLS é a única configuração suportada, já que a Microsoft descontinuou a porta 25 para submissões de cliente e recomenda a porta 587 com STARTTLS em vez da porta 465 para o Exchange Online. A autenticação deve usar OAuth 2.0 Modern Auth. A tabela abaixo reúne todas as configurações SMTP do Outlook para configurar qualquer cliente ou biblioteca SMTP.
| Configuração | Valor |
|---|---|
| Servidor SMTP | smtp.office365.com |
| Porta | 587 |
| Criptografia | STARTTLS (obrigatório) |
| Autenticação | OAuth 2.0 (Modern Auth) |
| Nome de usuário | Endereço de e-mail completo (user@domain.com) |
| Servidor IMAP | outlook.office365.com (porta 993, TLS) |
| Servidor POP3 | outlook.office365.com (porta 995, TLS) |
Os servidores IMAP e POP3 usam um hostname diferente (outlook.office365.com) do servidor SMTP. Isso pega de surpresa desenvolvedores que assumem que são o mesmo. Segundo a documentação do Exchange Online da Microsoft, o SMTP AUTH precisa ser habilitado explicitamente por caixa de correio por um administrador do tenant. Ele vem desabilitado por padrão em tenants Microsoft 365 novos.
Como o fim do Basic Auth da Microsoft mudou o acesso SMTP?
A Microsoft desativou permanentemente o Basic Authentication para os protocolos do Exchange Online em 1º de outubro de 2022. Antes dessa data, clientes SMTP podiam enviar usuário e senha em texto puro (codificados em base64 via AUTH LOGIN ou AUTH PLAIN). Após o desligamento, todas as conexões SMTP precisam se autenticar com um token de acesso OAuth 2.0 usando o mecanismo SASL XOAUTH2. Essa mudança quebrou milhares de scripts, impressoras e aplicações corporativas da noite para o dia.
Para enviar e-mail via SMTP com Modern Auth, você precisa de um registro de app no Azure AD com a permissão delegada SMTP.Send. A requisição de token vai para https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token com scope=https://outlook.office365.com/.default. O token de acesso expira em 3.600 segundos (1 hora), então código de produção precisa de um loop de refresh token. O exemplo abaixo mostra o handshake SMTP EHLO após o upgrade para STARTTLS.
# Handshake SMTP Modern Auth (conceitual)
EHLO client.example.com
STARTTLS
EHLO client.example.com
AUTH XOAUTH2 <base64-encoded-oauth2-token>
# Formato do token base64:
# user=user@contoso.com^Aauth=Bearer <access_token>^A^A
# onde ^A é o caractere ASCII SOH (0x01)O formato de token XOAUTH2 não é igual a um header Bearer padrão. Os campos user= e auth=Bearer são separados por caracteres SOH (0x01), e a string inteira é então codificada em base64. Errar essa codificação é a causa nº 1 dos erros 535 5.7.3 Authentication unsuccessful. A documentação XOAUTH2 da Microsoft inclui um exemplo em Python que monta a string corretamente.
Quais são os erros SMTP comuns do Outlook e como corrigir?
O SMTP do Outlook retorna códigos de erro da RFC 5321 com códigos de status estendidos específicos da Microsoft. A família 5.7.x cobre falhas de autenticação e autorização, que são as mais comuns desde o fim do Basic Auth. A tabela abaixo lista 8 erros comuns da referência de NDRs da Microsoft.
| Código de erro | Significado | Correção |
|---|---|---|
| 535 5.7.3 | Falha de autenticação | Migre para OAuth 2.0 Modern Auth; o Basic Auth foi desativado permanentemente |
| 550 5.7.501 | SMTP AUTH desabilitado para a caixa de correio | O admin deve habilitar o SMTP AUTH via Set-CASMailbox -SmtpClientAuthenticationDisabled $false |
| 550 5.1.1 | Destinatário não encontrado | Verifique se o endereço do destinatário existe no domínio de destino |
| 421 4.7.0 | Conexão limitada (throttle) | Aguarde e tente novamente após 60 segundos; reduza a taxa de envio |
| 550 5.7.708 | Tenant bloqueado para e-mail de saída | O admin deve remover o bloqueio no Security & Compliance Center |
| 554 5.2.0 | Mensagem grande demais | Reduza a mensagem para menos de 25 MB (35 MB com overhead de base64 = ~25 MB decodificados) |
| 452 4.5.3 | Destinatários demais | Fique dentro do limite de destinatários do tenant (o padrão varia, máx. 1.000) |
| 550 5.7.520 | Detectada como spam | Verifique os registros SPF, DKIM e DMARC; reduza a taxa de envio em massa |
O erro 535 5.7.3 é de longe o mais comum, respondendo pela maioria dos tickets de suporte desde outubro de 2022. Se você o vir, seu código ainda está enviando usuário e senha em texto puro. A correção é registrar um app no Azure AD, obter um token OAuth 2.0 e usar o mecanismo XOAUTH2 conforme descrito na seção anterior.
Quais são os limites de envio do Microsoft 365?
O Microsoft 365 impõe limites de taxa por caixa de correio e por tenant nas submissões via SMTP AUTH. Os limites diferem entre os planos Microsoft 365 Business e as contas gratuitas do Outlook.com. Exceder qualquer limite dispara uma resposta de throttle 421 4.7.0 ou uma rejeição 550. A tabela abaixo mostra os limites atuais segundo a documentação de limites do Exchange Online da Microsoft.
| Limite | Microsoft 365 | Outlook.com |
|---|---|---|
| Destinatários por dia | 10.000 | varia conforme a assinatura |
| Destinatários por mensagem | Até 1.000 (configurável pelo admin) | 100 |
| Mensagens por minuto | 30 | 30 |
| Tamanho máximo da mensagem | 25 MB | 25 MB |
| Máximo de anexos | 250 | 250 |
O limite de 30 mensagens por minuto surpreende desenvolvedores que constroem sistemas automatizados de notificação. É um teto por caixa de correio, não por tenant, então distribuir os envios entre várias caixas de correio contorna o limite. Para e-mail transacional de alto volume, a Microsoft recomenda usar um recurso do Azure Communication Services ou um ESP de terceiros em vez do SMTP AUTH.
Quando você deve pular o SMTP do Outlook de vez?
O SMTP AUTH via smtp.office365.com exige registro de app no Azure AD, gerenciamento de tokens OAuth 2.0, codificação XOAUTH2 e habilitação pelo admin em cada caixa de correio. Se você está construindo um script, um pipeline de CI/CD ou uma ferramenta de desenvolvedor que envia e-mail de uma conta Outlook, dá para pular tudo isso. O CLI autentica via OAuth no navegador, armazena o token em cache e cuida do refresh automaticamente.
O exemplo abaixo envia um e-mail de uma conta Outlook em 2 comandos. O primeiro autentica e armazena as credenciais localmente. O segundo envia a mensagem via HTTPS, não SMTP. Não há porta 587, nem handshake STARTTLS, nem codificação de token XOAUTH2, nem etapa de habilitação pelo admin.
# Instalar (macOS ou Linux)
brew install nylas/nylas-cli/nylas
# Autenticar sua conta Outlook
nylas auth login --provider microsoft
# Enviar um e-mail
nylas email send \
--to recipient@example.com \
--subject "Quarterly report" \
--body "See the attached spreadsheet."
# Listar e-mails recentes para verificar a entrega
nylas email list --limit 5Os mesmos comandos funcionam para contas Gmail, Yahoo, iCloud, Exchange e IMAP. Se você precisa das configurações SMTP específicas do Outlook para um sistema legado que exige SMTP puro, use a tabela de referência rápida no topo desta página. Para todo o resto, pular o SMTP elimina a complexidade de autenticação que o fim do Basic Auth da Microsoft introduziu.
Próximos passos
- Enviar e-mail em PHP: mail(), PHPMailer, CLI — três formas de enviar e-mail em PHP
- Configurações SMTP do Gmail — o equivalente desta referência para o Gmail, com portas 587/465 e configuração de senha de app
- Enviar e-mail Outlook pelo terminal — envie e-mail Outlook sem Graph API nem SMTP
- E-mail do Office 365 com PowerShell — gerencie e-mail do O365 em scripts PowerShell
- Migração de EWS para Graph — migre do Exchange Web Services antes do desligamento de outubro de 2026
- Referência completa de comandos — todas as flags e subcomandos documentados