O tamanho em disco é apenas uma parte da mensagem gerada. Cabeçalhos MIME e codificação base64 adicionam sobrecarga, então um arquivo que cabe no limite anunciado pelo provedor ainda pode tornar a mensagem grande demais.
O que torna um anexo maior em trânsito?
A codificação Base64 adiciona cerca de um terço a um arquivo binário antes que as quebras de linha e os cabeçalhos MIME sejam incluídos. O e-mail transporta esse arquivo codificado como uma parte MIME, junto com o corpo e os cabeçalhos.
Por exemplo, um arquivo binário de 12 MB se torna aproximadamente 16 MB em base64 antes das quebras de linha, cabeçalhos e corpo. Trate isso como uma estimativa, não como um limite do provedor.
Qual limite devo usar?
Use o menor limite entre o seu serviço de envio, o provedor do destinatário e o caminho entre eles. Provedores publicam limites diferentes e podem alterá-los. Aponte para o limite atual do provedor em vez de fixar um número universal no código.
Se um arquivo estiver perto do limite, coloque-o atrás de um link de download autenticado. A mensagem permanece pequena. Você pode expirar ou revogar o acesso separadamente do e-mail.
| Fronteira | O que limita | Consequência de exemplo |
|---|---|---|
| Teto por anexo | Um arquivo ou campo de anexo | O API rejeita esse item |
| Teto da mensagem inteira | Corpo, cabeçalhos e anexos codificados | O remetente rejeita a mensagem gerada |
| Transferência por link na nuvem | O serviço de download vinculado | O destinatário segue uma política de acesso separada |
A ajuda pessoal do Gmail descreve um limite total de anexos de 25 MB. Administradores do Workspace podem definir limites diferentes para contas corporativas e escolares. Trate ambos como valores específicos do provedor.
Como um API deve lidar com arquivos grandes?
Verifique o tamanho da mensagem codificada antes de enviar. Rejeite ou substitua um anexo acima do limite por um link de download claro. Informe ao usuário qual arquivo causou a decisão. Não tente enviar novamente uma mensagem acima do limite sem alterá-la.
Mantenha os nomes dos anexos e os tipos de conteúdo corretos. O provedor do destinatário pode rejeitar uma mensagem por causa do tamanho total, de um tipo de arquivo bloqueado ou de uma política aplicada ao link.
Como o Bird lida com anexos?
Defina o array attachments na sua solicitação POST /v1/email/messages. Consulte o guia de anexos para ver o limite atual de mensagem gerada do Bird. Um envio HTTP acima do limite retorna 413. Mantenha o conteúdo bruto dos anexos bem abaixo do limite documentado para que os corpos e o encapsulamento MIME caibam.
Resumo
- O limite cobre a mensagem codificada, o corpo, os cabeçalhos e os anexos.
- Base64 adiciona aproximadamente um terço ao tamanho de um arquivo binário.
- Verifique todos os provedores no caminho de entrega.
- Um link de download evita falhas de tamanho de anexo para arquivos grandes.