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 fragte mich dann, ob ich wirklich eine E-Mail mit einer Gesamtgröße von 22 MB senden wollte.
Woher kommt dieser Unterschied? 5 MB Text klingen nach ein bisschen viel.
email
thunderbird
base64
arc_lupus
quelle
quelle
Antworten:
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.
quelle
Warum ist die E-Mail größer?
Weil die Daten verschlüsselt sind, in
base64
denen Gruppen von bis zu drei Bytes als Gruppen von vier druckbaren ASCII-Zeichen verschlüsselt sind . 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önnen zuverlässig durch die Vielzahl von E-Mail-Systemen auf dem Planeten geleitet werden.
Deshalb hat MIME zwei Schemata zum Codieren anderer Daten als ASCII-Text unterteilt: "quoted-printable" für hauptsächlich ASCII-Text mit einigen anderen Bits 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, jedoch leider keine Beschränkungen in Bezug auf Zeilenlängen und Zeilenenden aufhob, 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 fanden jedoch keine breite Anwendung. 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.
quelle