Um anexo cresce um terço dentro do e-mail
Publicado a 07/09/2026 · 4 min de leitura · Ferramentas de ficheiros
Daniel Okonkwo — Programador front-end e redator de Tecnologia na OneKitly
Desempenho web · Formatos de ficheiro
Verificado a partir de 3 fontes
O correio foi concebido para transportar texto, por isso um ficheiro tem de ser reescrito em texto antes de viajar. A codificação usada é base64: cada três bytes tornam-se quatro caracteres imprimíveis, e o MIME corta depois o resultado em linhas de 76 caracteres terminadas por um retorno de carro e uma mudança de linha. Três bytes por quatro dão um fator fixo de 1,3333, os cortes de linha acrescentam 2,6 %, e o total medido é 1,3684 — um ficheiro de 10 MiB ocupa 13,684 MiB da mensagem. Ao contrário, um limite de envio de 25 MB transporta cerca de 18,3 MiB de ficheiros reais, um de 20 MB cerca de 14,6 MiB e um de 10 MB cerca de 7,3 MiB, antes de o corpo e os cabeçalhos tomarem a sua parte. O extrator inverte aqui a codificação e devolve-te os bytes originais, byte a byte: o inchaço só existe dentro da mensagem.
O correio transporta os ficheiros em texto, três bytes escritos em quatro caracteres. Um anexo de 10 MiB ocupa 13,68 MiB da mensagem, pelo que um limite de 25 MB significa na realidade cerca de 18 MiB de ficheiros.
Porque um ficheiro não pode viajar tal como é
Os protocolos do correio foram escritos quando uma ligação garantia sete bits por caractere e mais nada. Um byte de um PDF ou de uma fotografia pode tomar qualquer um de 256 valores, vários dos quais significam algo para um servidor de correio — um retorno de carro solto, um nulo, uma linha que começa por um ponto. O base64 contorna tudo isso usando apenas 64 caracteres em que todos os sistemas concordam, ao preço de escrever quatro por cada três bytes. Essa aritmética não é um detalhe de implementação otimizável: é o preço da garantia de que o ficheiro chega idêntico.
Explica também porque comprimir antes de anexar ajuda e recomprimir um ficheiro já comprimido não. Uma pasta de documentos reduzida a um terço do seu tamanho custa também um terço do base64, porque a codificação se aplica aos bytes que lhe dás. Uma fotografia ou um PDF já estão comprimidos: comprimi-los não ganha nada e o 1,3684 continua a aplicar-se ao tamanho inteiro.
Tirar os ficheiros, com os nomes certos
Cada anexo ocupa a sua própria parte da mensagem, com um Content-Type que diz o que é e um Content-Disposition que dá o nome de ficheiro escolhido pelo remetente. Ambos podem ir codificados em RFC 2047: uma fatura francesa pode chamar-se =?UTF-8?B?ZmFjdHVyZSBqYW52aWVyLnBkZg==?= no ficheiro cru e Facture janvier.pdf depois de descodificada — o extrator descodifica, e é essa a diferença entre uma pasta de nomes legíveis e uma de garatuja. Os nomes sobrevivem ainda a espaços e acentos, que alguns scripts de extração antigos estragam.
| Limite anunciado | Ficheiros que cabem | Tamanho codificado |
|---|---|---|
| 25 MB | 18,3 MiB | 25 MB |
| 20 MB | 14,6 MiB | 20 MB |
| 10 MB | 7,3 MiB | 10 MB |
| Um ficheiro de 10 MiB | 10 MiB | 13,68 MiB (×1,3684) |
Perguntas frequentes
- O ficheiro extraído é idêntico ao que foi enviado?
- Sim. O base64 é uma codificação sem perdas: descodificar devolve exatamente os bytes que entraram — a soma de verificação do ficheiro extraído corresponde à do original. É por isso que o correio pode transportar um PDF assinado ou um programa sem os corromper, e por isso o tamanho que vês em disco depois da extração é o real, não o codificado.
- Porque é a minha caixa maior do que os ficheiros de que me lembro?
- Em parte por isto, e soma. Cada anexo que recebeste é guardado codificado: uma caixa com 3 GiB de ficheiros ocupa cerca de 4,1 GiB. Por cima, uma mensagem que enviaste com anexo costuma ser guardada duas vezes — em Enviados e no fio — e uma mensagem reencaminhada leva outra vez os seus anexos. Extrair e apagar os maiores anexos rende em geral mais do que apagar centenas de mensagens pequenas.
- Posso tirar um anexo de uma mensagem que não abre?
- Muitas vezes sim, e é uma das melhores razões para ter esta ferramenta à mão. Uma mensagem cujo HTML derrota um cliente de correio continua a ser um ficheiro MIME bem formado, e o anexo ocupa a sua própria parte com a sua própria codificação; o extrator lê a estrutura em vez de apresentar a mensagem, por isso um corpo que não se mostra não impede o ficheiro de sair.
Artigos que podem interessar-lhe
Todos os guias →Ferramentas relacionadas
Fontes
Detetaste um erro neste artigo?