Guia do desenvolvedorMigração
Migrar de qualquer provedor por SMTP
Guia para trocar qualquer provedor SMTP (Gmail, Microsoft 365, servidor próprio, hospedagem, outro serviço de envio) pelo Couryo sem mudar o código. Credenciais, cabeçalhos, idempotência, códigos de resposta e a troca de DNS na ordem segura.
Se o seu sistema envia por SMTP, a migração para o Couryo é trocar quatro valores: servidor, porta, usuário e senha. Cada mensagem passa pelo mesmo caminho da API: domínio verificado, supressão, limites, linha do tempo e webhooks. Siga a ordem segura da migração e use este guia para os detalhes.
As credenciais#
| Campo | Valor |
|---|---|
| Servidor | smtp.couryo.com |
| Porta | 587 (STARTTLS), 465 (TLS direto) ou 2525 (STARTTLS, quando a 587 está bloqueada) |
| Usuário | couryo |
| Senha | a chave de API (ck_live_..., ou ck_test_... para testar sem entregar) |
| Criptografia | obrigatória (TLS 1.2 ou mais novo) |
O remetente (From) precisa estar num domínio verificado no Couryo. Comece com a chave ck_test_ em homologação: o e-mail é capturado, aparece em E-mails com o conteúdo e o link de revisão, e ninguém recebe.
O que muda em relação a outros SMTPs#
- Um id por mensagem: a resposta ao
DATAé250 2.0.0 Ok: queued as msg_.... Guarde o id para consultar a linha do tempo emGET /v1/emails/{id}. - Sem e-mail duplicado em nova tentativa: o
Message-IDda mensagem (ou o cabeçalhoIdempotency-Key) vale como chave de idempotência por 24 horas. - Limites explicados: perto de um limite, a resposta é
452 4.7.0com o motivo e os números, em vez de uma recusa sem explicação. Os códigos estão em SMTP. - Opções por cabeçalho:
X-Couryo-Stream: marketingliga o descadastro em um clique e separa a supressão do transacional;X-Couryo-Tags: tipo=pedidovira tags para filtrar no painel e nos webhooks. - Até 50 destinatários por mensagem. Para mandar a mesma mensagem a muita gente, prefira uma por destinatário (ou uma campanha): a entrega e as métricas ficam por pessoa.
- O que o SMTP não faz: templates salvos e o lote de 100 numa chamada são da API REST.
Exemplos de troca#
MAIL_MAILER=smtp
MAIL_HOST=smtp.couryo.com
MAIL_PORT=587
MAIL_USERNAME=couryo
MAIL_PASSWORD=ck_live_...
MAIL_ENCRYPTION=tls$mail->isSMTP();
$mail->Host = 'smtp.couryo.com';
$mail->Port = 587;
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->SMTPAuth = true;
$mail->Username = 'couryo';
$mail->Password = getenv('COURYO_API_KEY');EMAIL_HOST = "smtp.couryo.com"
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = "couryo"
EMAIL_HOST_PASSWORD = os.environ["COURYO_API_KEY"]Ferramentas com campo de "SMTP personalizado" (Supabase Auth, WordPress, n8n, ERPs) usam os mesmos quatro valores.
DNS#
- Não mexa no MX das suas caixas de e-mail nem no SPF do domínio principal. O Couryo passa no SPF pelo subdomínio
bounces, por CNAME, sem gastar nenhuma das 10 consultas de DNS do seu SPF. - Publique os registros do Couryo:
couryo1._domainkey,couryo2._domainkeyebounces(CNAME) e, se você ainda não tiver, o DMARC sugerido. Eles não conflitam com os do provedor atual. - Se o provedor antigo já usa o subdomínio
bounces, a página do domínio mostra o registro como diferente, e o domínio só fica verificado quando ele apontar para o Couryo. Nesse caso, a troca desse registro é o momento da virada: faça na hora de menor volume, com o código já pronto para o Couryo. - Espere o domínio ficar verificado, mova o envio aos poucos e, 7 dias depois do fim, apague a chave DKIM e o
include:do SPF do provedor antigo, se nada mais usar.