C C-Connect Documentação

Enviar por SMTP

Servidor, porta, credenciais, e a única surpresa: o utilizador é ignorado.

Se o sistema que envia só sabe falar SMTP, não é preciso mudar nada nele. As mensagens entram pelo mesmo sítio e saem exactamente da mesma maneira: a mesma assinatura DKIM, o mesmo Return-Path, os mesmos eventos.

As definições

Servidor smtp.c-connect.pt
Porta 587
Segurança STARTTLS
Utilizador qualquer coisa
Password a tua chave de API completa

A surpresa

O utilizador é ignorado. O servidor não olha para ele; a autenticação está toda na password, que é a chave de API.

Existe porque quase todos os clientes de email e bibliotecas SMTP exigem um utilizador e recusam-se a autenticar sem ele. Podes pôr o endereço de onde envias, o nome da aplicação, ou a palavra cconnect. Não muda nada.

Quem decide o remetente é o cabeçalho From de cada mensagem, e aí podes usar o endereço que quiseres dentro de um domínio teu verificado:

From: Notificações <notificacoes@mail.empresa.pt>

Verificamos o domínio, nunca a caixa.

A autenticação só depois de STARTTLS

O servidor não aceita AUTH em claro. A ligação abre, o cliente pede STARTTLS, e só depois disso é que a autenticação é aceite. Uma biblioteca configurada para SSL implícito na porta 465 não vai conseguir ligar-se; usa STARTTLS na 587.

Um exemplo

Host:     smtp.c-connect.pt
Port:     587
Encryption: tls
Username: notificacoes@mail.empresa.pt
Password: cconnect_xxxxxxxxxxxxxxxxxxxxxxxx

Em Laravel, é isto no .env:

MAIL_MAILER=smtp
MAIL_HOST=smtp.c-connect.pt
MAIL_PORT=587
MAIL_ENCRYPTION=tls
MAIL_USERNAME=notificacoes@mail.empresa.pt
MAIL_PASSWORD=cconnect_xxxxxxxxxxxxxxxxxxxxxxxx
MAIL_FROM_ADDRESS=notificacoes@mail.empresa.pt

O que muda em relação à API

Pouco, e vale a pena saber o quê.

  • O identificador. A API devolve o id na resposta; por SMTP ele vai no Message-ID que escrevemos, e lês-lo exige olhar para o que o servidor respondeu ao DATA.
  • Os erros. Um 422 da API é um código SMTP 550 com um texto, e o teu cliente pode ou não mostrá-lo.
  • Um destinatário. Como na API, uma mensagem por pessoa. Vários RCPT TO na mesma transacção são tratados como mensagens separadas, com estados e eventos separados.

Se estiveres a começar de raiz, usa a API. O SMTP existe para não obrigar ninguém a reescrever um sistema que já funciona.

Quando a autenticação falha

Resposta O que é
535 A chave está errada, foi revogada, ou puseste a chave no utilizador e não na password.
530 Tentaste autenticar antes do STARTTLS.
550 A mensagem foi recusada: domínio não verificado, endereço suprimido, ou marketing sem cancelamento de subscrição.