Enviar MIME em bruto
Quando enviar a mensagem já construída, e as quatro coisas que reescrevemos.
Se já tens um sistema que constrói mensagens, com anexos, imagens embebidas e
cabeçalhos teus, podes enviá-las inteiras. O campo chama-se raw.
curl -X POST https://app.c-connect.pt/v1/messages \
-H "Authorization: Bearer $CCONNECT_KEY" \
-H "Content-Type: application/json" \
-d @- <<'JSON'
{
"from": "recibos@mail.empresa.pt",
"to": "alguem@example.org",
"raw": "From: Recibos <recibos@mail.empresa.pt>\r\nSubject: O teu recibo\r\nMIME-Version: 1.0\r\nContent-Type: text/plain; charset=UTF-8\r\n\r\nObrigado."
}
JSON
Quando o raw está presente, nada mais é renderizado: o subject, o text e
o html são ignorados, e o que chega é o que sai.
O que reescrevemos
Quatro coisas, e mais nenhuma. O corpo nunca é lido.
- As quebras de linha passam a
CRLF. Uma mensagem construída com\nteria o hash do corpo calculado sobre bytes que nenhum destino chega a ver, e falharia DKIM em toda a parte. - O
Message-IDé substituído pelo nosso. É o mesmo identificador que a API te devolve, o mesmo que aparece nos eventos, e o mesmo que vai no envelope de devolução: é o que liga uma devolução à mensagem sem ter de a abrir. - O
Dateé reescrito no fuso da tua conta. UmDateno futuro ou muito no passado é um sinal que alguns filtros usam. - A assinatura DKIM é acrescentada, sobre os cabeçalhos e o corpo tal como ficaram.
Tudo o resto fica byte a byte. Não há aqui um analisador de MIME que reconstrua a mensagem, precisamente porque reconstruir perderia o que tu fizeste e nós não modelamos.
O que é recusado
| Situação | Porquê |
|---|---|
| Falta a linha em branco depois dos cabeçalhos | Não é uma mensagem MIME. |
Um cabeçalho sem : |
Idem. |
Não há From |
Não sabemos por quem assinar. |
O From é de outro domínio |
Só podes enviar a partir de um domínio teu verificado. |
Marketing sem List-Unsubscribe |
Ver Cancelamento de subscrição. |
O List-Unsubscribe é recusado em vez de acrescentado porque acrescentá-lo
significaria inventar um URL de cancelamento em teu nome, e um cancelamento num
clique que não cancela nada é pior do que não existir.
Os cabeçalhos que não deves pôr
Não escrevas DKIM-Signature, Return-Path ou Received. Os dois primeiros
são nossos, e o terceiro é escrito pelos servidores por onde a mensagem passa.
Podes pôr o Reply-To, o References, o In-Reply-To e os cabeçalhos teus
com prefixo X-. Um In-Reply-To correcto é o que faz os clientes de email
agruparem uma conversa, e vale a pena se enviares respostas automáticas.
Tamanho
O limite do campo raw é de 25 MB, que é o mesmo limite prático de quase todos
os destinos. Uma mensagem maior do que isso não é recusada por nós e é recusada
por eles, o que é pior, porque já gastou a tentativa.
Para ficheiros grandes, envia uma ligação em vez de um anexo. Também é o que evita que a mensagem seja recusada por tamanho num servidor intermédio que nem sequer é o destino final.