it-swarm.com.de

Warum ist die Größe meiner E-Mail etwa ein Drittel größer als die Größe der angehängten Dateien?

Beim Anhängen von Daten an meine E-Mails ist mir aufgefallen, dass Thunderbird die Gesamtgröße der resultierenden E-Mail als viel größer als die von mir angehängten Dateien berechnet.

Hier ist ein aktuelles Beispiel: Zwei Bilder, eines mit 13 MB und eines mit 3,6 MB, sollten insgesamt ungefähr 17 MB groß sein. Es gab vier Textzeilen. Thunderbird hat mich dann gefragt, ob ich wirklich eine E-Mail mit einer Gesamtgröße von 22 MB senden möchte.

Woher kommt dieser Unterschied? 5 MB Text klingen nach ein bisschen viel.

112
arc_lupus

Ihre Daten waren 17 MiB. Es gibt 1024 KiB in einer MiB. Es gibt 1024 B in einem KiB. Ein Byte enthält 8 Bits. Das sind also 142.606.336 Bits.

Die Base 64-Codierung codiert alle sechs Bits als separates Byte. Wir brauchen also ungefähr 23.767.722 Bytes. Durch zweimaliges Teilen durch 1024 erhalten wir 22,67 MiB. Daher kommen die 22 MiB.

E-Mail ist eine ziemlich alte Technologie und setzt keine saubere 8-Bit-Pipe voraus.

214
David Schwartz

Warum ist die E-Mail größer?

Weil die Daten in base64 codiert sind, der Gruppen von bis zu drei Bytes als Gruppen von vier druckbaren ASCII Zeichen codiert. In der Regel werden diese Gruppen druckbarer Zeichen dann in Zeilen aufgeteilt.

Das Ergebnis ist, dass die codierten Daten etwas mehr als das 1⅓-fache der Größe der Originaldaten betragen.

Warum wird base64 verwendet?

E-Mail hat eine lange Geschichte und wurde ursprünglich für die Übertragung von Text entwickelt. Nur Bytewerte, die ASCII druckbare Zeichen darstellen, könnten zuverlässig durch die Vielzahl von E-Mail-Systemen auf dem Planeten gelangen.

Deshalb hat MIME zwei Schemata zum Codieren anderer Daten als ASCII-Text unterteilt - "quoted-printable", der hauptsächlich für ASCII-Text mit einigen anderen Bits entwickelt wurde, und "BASE64" für beliebige Binärdaten.

Es wurden Erweiterungen des SMTP-Protokolls vorgenommen, um diese Einschränkungen zu beseitigen. Erstens war 8BITMIME im Jahr 1994, das höhere Oktettwerte erlaubte, aber leider keine Beschränkungen in Bezug auf Zeilenlängen und Zeilenenden beseitigte, nicht für beliebige Binärdaten geeignet. und dann BINARYMIME im Jahr 1995, das die Übertragung von Nachrichten mit beliebigen Binärdaten ermöglichte.

Diese Standards haben jedoch keine breite Akzeptanz gefunden. Ein Problem ist, was passiert, wenn ein Hop in der Mailkette sie unterstützt, der nächste Hop jedoch nicht? Der Mail-Server kann die E-Mail dann nicht wie besehen senden. Entweder muss er sie als unzustellbar ablehnen und bouncen (was für Benutzer wahrscheinlich nicht akzeptabel ist) oder konvertieren (was einen erheblichen zusätzlichen Code auf dem Mail-Server erfordert). . Die Konvertierung wird durch MIME-Regeln besonders schmerzhaft, da bei mehrteiligen Typen keine Inhaltsübertragungscodierungen verwendet werden.

50
plugwash