Em resumo. SMTP: portas 587 / 465, bibliotecas de e-mail em toda parte · API: HTTPS, chave de API, JSON estruturado · Entrega: mesmos IPs, mesma autenticação · Feedback: webhooks e logs de eventos
A versão curta
- Duas formas de entregar uma mensagem. As duas interfaces fazem o mesmo trabalho: sua aplicação entrega uma mensagem a um serviço de envio, e o serviço a entrega ao servidor de e-mail do destinatário.
- Como o SMTP funciona para uma aplicação. O SMTP é o protocolo que os servidores de e-mail usam há décadas, e quase toda linguagem de programação, framework e software tem uma biblioteca para ele.
- Como funciona uma API de e-mail. Uma chamada de API é uma requisição HTTPS, normalmente com um corpo JSON que informa o remetente, os destinatários, o assunto e o conteúdo.
- Diferenças que importam. A configuração é mais rápida por SMTP quando o software já envia e-mail.
- Erros, novas tentativas e feedback. Seja qual for a sua escolha, uma entrega bem-sucedida à interface significa apenas que o serviço aceitou a mensagem.
- Segurança. Trate senhas SMTP e chaves de API como segredos.
Duas formas de entregar uma mensagem
As duas interfaces fazem o mesmo trabalho: sua aplicação entrega uma mensagem a um serviço de envio, e o serviço a entrega ao servidor de e-mail do destinatário. A diferença está em como essa entrega inicial funciona.
Com o SMTP, sua aplicação fala o protocolo de e-mail com um relay. Com uma API, ela faz uma requisição web comum e o serviço monta a mensagem para você.
Como o SMTP funciona para uma aplicação
O SMTP é o protocolo que os servidores de e-mail usam há décadas, e quase toda linguagem de programação, framework e software tem uma biblioteca para ele. Você informa um host, uma porta, um modo de segurança e as credenciais, e ela envia a mensagem.
Host: smtp.example.com
Port: 587 (STARTTLS)
Username and password: from your account
Use a porta 587 com STARTTLS ou a porta 465 com TLS implícito, que são as portas de submissão destinadas a aplicações que fazem login. Um código de resposta volta a cada etapa, como 250 para aceito, para que seu código saiba se o relay recebeu a mensagem.
Como funciona uma API de e-mail
Uma chamada de API é uma requisição HTTPS, normalmente com um corpo JSON que informa o remetente, os destinatários, o assunto e o conteúdo. Você se autentica com uma chave de API, e a resposta informa se a requisição foi aceita e lhe dá um identificador que pode ser usado depois.
POST /v1/messages
Authorization: Bearer <api key>
{"from":"you@example.com","to":"them@example.com","subject":"Hello"}
Como a requisição são dados estruturados, uma API pode fazer coisas que são trabalhosas por SMTP: enviar uma mensagem a vários destinatários com um valor diferente para cada um, anexar seus próprios rótulos para rastreamento, escolher um template armazenado e preencher suas variáveis.
Diferenças que importam
A configuração é mais rápida por SMTP quando o software já envia e-mail. O controle é maior com uma API, que retorna erros estruturados e aceita opções para as quais um protocolo de e-mail não tem lugar. Uma única requisição de API pode carregar vários destinatários, enquanto o SMTP precisa de uma transação por mensagem ou por lote.
A entrega é a mesma nos dois casos: o serviço de envio assina a mensagem, escolhe um IP e conversa com o servidor do destinatário. Nenhuma das interfaces coloca uma mensagem na caixa de entrada por si só. Quem faz isso são a autenticação e a reputação.
Erros, novas tentativas e feedback
Seja qual for a sua escolha, uma entrega bem-sucedida à interface significa apenas que o serviço aceitou a mensagem. Se ela chegou ao destinatário é informado depois, como uma entrega, um bounce ou uma reclamação. Use webhooks ou o log de eventos para obter esses resultados.
Tente de novo apenas o que falhou por um motivo temporário. Um timeout ou uma resposta 4xx vale uma nova tentativa com atraso, enquanto uma resposta 5xx ou um endereço rejeitado vai falhar sempre, e repetir só aumenta a carga.
Segurança
Trate senhas SMTP e chaves de API como segredos. Guarde-as em configurações de ambiente, nunca no código-fonte nem em um aplicativo móvel, e dê a cada aplicação a própria chave para poder cancelar uma sem afetar as outras.
Prefira chaves limitadas ao envio, rotacione-as periodicamente e use sempre uma conexão criptografada. Ambas as interfaces devem ser usadas sobre TLS.
Como escolher
Escolha o SMTP quando for conectar um software que já envia e-mail, como um CMS, um help desk ou uma aplicação mais antiga. Escolha a API para código novo, quando quiser templates, valores por destinatário, tags e respostas estruturadas.
Você não fica preso. As duas compartilham seu domínio, seus IPs e suas listas de supressão, então uma equipe pode começar pelo SMTP e migrar depois os caminhos mais movimentados para a API, um de cada vez.
Leituras complementares e fontes
- RFC 6409: Message Submission for Mail
- RFC 8314: Cleartext Considered Obsolete: TLS para submissão de e-mail
- Google: diretrizes para remetentes de e-mail
Faça no MigoSMTP: artigos da central de ajuda
- Segurança e rotação de chaves de API
- Webhooks e eventos de entrega
- Configurações de SMTP: portas, TLS e autenticação
Guias e ferramentas relacionados
- API de e-mail: conheça a API e o que ela abrange.
- Relay SMTP: conecte softwares existentes.
- E-mail transacional: o que é e como enviá-lo bem.
- Relay SMTP explicado: como funciona um relay.
Pronto para experimentar? Comece no plano gratuito e envie sua primeira mensagem em minutos.
Perguntas frequentes
Qual é a diferença entre uma API de e-mail e o SMTP?
O SMTP é o protocolo padrão de e-mail: sua aplicação abre uma conexão com um servidor de e-mail e entrega uma mensagem. Uma API de e-mail é uma interface HTTPS oferecida por um serviço de envio, em que sua aplicação envia a mensagem e suas opções como uma requisição e lê o resultado como uma resposta.
Uma API de e-mail é mais rápida que o SMTP?
Pode ser mais fácil de tornar rápida, porque uma única requisição pode carregar vários destinatários e variáveis, e você mantém conexões com um serviço web que já usa. A velocidade até a caixa de entrada depende principalmente do serviço de envio e da sua reputação, não de qual interface você usa.
Qual devo usar para e-mail transacional?
Qualquer um serve. Uma API é uma boa opção para código novo que quer templates, metadados e erros estruturados. O SMTP é uma boa opção para software que já envia e-mail, porque basta mudar um nome de host e as credenciais.
Posso usar os dois com a mesma conta?
Sim. Normalmente os dois compartilham a mesma autenticação de domínio, os mesmos IPs de envio, as mesmas listas de supressão e os mesmos logs, então você pode enviar de uma aplicação mais antiga por SMTP e de código novo pela API.