Novo guia: como aquecer um IP dedicado sem prejudicar sua reputação. Ler agora →
MigoSMTP
Guias

Integração SMTP

Use qualquer cliente, aplicação ou dispositivo SMTP. Copie os valores de conexão do painel e ative o TLS.

Detalhes da conexão

Use sempre uma conexão criptografada. Autentique-se com seu usuário SMTP e uma chave de API como senha. Copie o host e o usuário exatos da página SMTP do painel; os valores abaixo mostram apenas o formato.

Host:     YOUR_SMTP_HOST
Port:     587 (STARTTLS) or 465 (implicit TLS)
Username: YOUR_SMTP_USERNAME
Password: YOUR_API_KEY

Qual porta usar

A porta 587 com STARTTLS é a porta de submissão padrão e a melhor escolha inicial. A porta 465 usa TLS desde o primeiro byte e atende clientes que o esperam. Evite a porta 25 para submissão: ela é destinada a e-mail entre servidores e muitos provedores de hospedagem a bloqueiam.

Teste pela linha de comando

Confirme a autenticação antes de integrar sua aplicação. O swaks envia uma mensagem de teste; o openssl mostra o handshake TLS se algo falhar.

swaks --to you@example.com --from hello@example.com \
  --server YOUR_SMTP_HOST:587 --tls \
  --auth LOGIN --auth-user YOUR_SMTP_USERNAME

openssl s_client -starttls smtp -connect YOUR_SMTP_HOST:587

Exemplo: Node.js (Nodemailer)

O Nodemailer funciona com qualquer serviço SMTP. Mantenha as credenciais em variáveis de ambiente.

const nodemailer = require("nodemailer");
const transport = nodemailer.createTransport({
  host: process.env.SMTP_HOST,
  port: 587,
  secure: false, // STARTTLS
  auth: { user: process.env.SMTP_USER, pass: process.env.MIGOSMTP_KEY },
});
await transport.sendMail({ from, to, subject, text });

Exemplo: Python (smtplib)

A biblioteca padrão basta para um envio simples.

import os, smtplib
from email.message import EmailMessage

msg = EmailMessage()
msg["From"], msg["To"], msg["Subject"] = "hello@example.com", "you@example.com", "Hello"
msg.set_content("It works.")
with smtplib.SMTP(os.environ["SMTP_HOST"], 587) as s:
    s.starttls()
    s.login(os.environ["SMTP_USER"], os.environ["MIGOSMTP_KEY"])
    s.send_message(msg)

Cabeçalhos que vale definir

Defina um Reply-To se as respostas devem ir para outro lugar que não o endereço From. Para e-mails em massa ou de marketing, adicione um cabeçalho List-Unsubscribe, que os provedores de caixa de entrada procuram. Use um endereço From de um domínio verificado, ou a mensagem pode ser rejeitada.

Resultados de entrega

O SMTP só informa que a mensagem foi aceita. Para saber se ela foi entregue, teve bounce ou foi denunciada como spam, use webhooks ou a visão de atividade no painel.

SintomaO que verificar
535 Authentication failedConfira o usuário e se a senha é uma chave de API vigente com permissão de envio.
Connection timed outSeu host pode estar bloqueando a porta. Tente 587 ou 465 e verifique as regras de firewall.
TLS or certificate errorUse STARTTLS na 587 ou TLS implícito na 465 e mantenha as bibliotecas do cliente atualizadas.
550 sender rejectedO endereço From não pertence a um domínio verificado. Verifique o domínio primeiro.
421 or 451 temporary errorReduza o ritmo e tente de novo mais tarde. Não repita em um loop apertado.
Esta página foi útil?Falar com o suporte

Comece a enviar em minutos.

Crie uma conta, adicione seu domínio e envie seu primeiro e-mail.