Como posso saber quantos bytes um bloco de texto em um email ocupa?

7

Estou tentando descobrir quantos bytes de dados uma PORÇÃO de um e-mail está usando (não o e-mail completo). Como posso descobrir isso?

Talvez haja algo em um editor de texto como o notepad ++ que poderia me dizer?

    
por Mike B 23.02.2012 / 19:18

5 respostas

4

Arraste a mensagem do seu cliente de email para a área de trabalho e abra o arquivo resultante (provavelmente .EML ) em um editor de texto que suporte diferentes codificações e mostre o tamanho dos dados (por exemplo, Notepad2 ). Então você pode simplesmente cortar a mensagem antes e depois para ver o tamanho real do bloco desejado (na barra de status do Notepad2).

    
por 24.02.2012 / 02:46
6

O Notepad ++ faz isso. Simplesmente copie & cole a parte da mensagem que deseja dimensionar em uma nova guia e leia o comprimento do campo comprimento na barra de status na parte inferior:

Se você definir a codificação para corresponder ao seu cliente de email (menu Codificação - > UTF-8 ), ela contará caracteres Unicode corretamente (por exemplo, ☃ é 3 bytes de comprimento na codificação UTF-8).

Isso só se aplica a e-mails de texto simples, não a e-mails em HTML ou multipartes / alternativos.

    
por 24.02.2012 / 14:45
3

Cada caractere no texto simples deve ser igual a 1 byte. Então, 512 caracteres seriam 0.5KB; 1024 caracteres seriam 1 KB e assim por diante. Por exemplo, este exemplo de email seria 308 bytes:

Date: Thu Feb 23 2012 12:00:00 -0800
From: Bob <[email protected]>
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:8.0) Gecko/20111105 Thunderbird/8.0
MIME-Version: 1.0
To: [email protected]
Subject: Test
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

This is a test message

Editar: para esclarecer, "um caractere" refere-se à origem bruta da mensagem de e-mail, não à representação formatada mostrada pela maioria dos clientes de e-mail. A pergunta original refere-se especificamente ao texto simples e ao Notepad ++ (que tem ANSI como sua codificação padrão), então assumi que a mensagem seria codificada como ANSI simples.

    
por 23.02.2012 / 20:17
2

Para obter uma boa estimativa, uma coisa é copiar e colar o texto em um arquivo .txt e ler o tamanho do arquivo resultante. Escrevi um script AutoHotkey para facilitar um pouco. Pressione Win + C para que uma pequena mensagem popup mostre o tamanho do arquivo do texto selecionado.

#c:: ;[Win]+[C]
{
    OriginalClipboard := Clipboard
    Clipboard =
    Send, ^c
    ClipWait
    FileAppend, %Clipboard%, temp.txt
    Clipboard =
    Clipboard := OriginalClipboard
    ClipWait
    FileGetSize, fileSize, temp.txt
    MsgBox, , , Bytes: %fileSize%
    FileDelete, temp.txt
    return
}

Meta : minha resposta acima é sobre 600 bytes.

    
por 24.02.2012 / 02:26
1

Se você estiver enviando seu e-mail como texto simples , o número de bytes será aproximadamente igual ao número de caracteres no texto selecionado. Se você colar o texto no Microsoft Word, ele poderá fazer uma contagem de letras para você ajudar.

Se você estiver enviando seu e-mail como Rich Text ou HTML , não há uma fórmula fácil. Em geral, quanto mais longa e mais complicada for a formatação do texto, maior será em bytes.

Se realmente for importante reduzir o tamanho do seu email, use sempre a codificação texto simples .

    
por 24.02.2012 / 01:39