سؤال لماذا حجم حجم بريدي الإلكتروني أكبر بمقدار الثلث من حجم ملفاته المرفقة؟


عند إرفاق البيانات برسائل البريد الإلكتروني الخاصة بي ، لاحظت أن Thunderbird يقوم بحساب الحجم الإجمالي للبريد الإلكتروني الناتج أكبر من الملفات التي أرفقتها.

في ما يلي مثال حديث: يجب أن تكون الصورتان ، واحدة بحجم 13 ميغابايت والأخرى عند 3.6 ميغابايت ، إجماليًا تقريبًا 17 ميغابايت. كان هناك أربعة أسطر من النص. سألني ثندربرد عما إذا كنت أريد إرسال رسالة بريد إلكتروني بحجم إجمالي 22 ميغابايت.

من أين يأتي هذا الاختلاف؟ 5 ميغابايت من النص يبدو وكأنه قليلا.


112
2017-10-26 20:45


الأصل


لاحظ أن هذا يؤثر في كثير من الأحيان على أشياء مثل الحجم الأقصى. إذا لم أكن مخطئًا ، فعادةً ما يسمح بريد Google بالبريد الإلكتروني البالغ 25 ميغابايت على الأكثر ، ولكن يتم حساب الـ 25 ميغابايت بعد ترميز ، لذلك لا يمكنك إرسال صورة بحجم 25 ميغابايت مع بريد إلكتروني ، لأنه عندما يكون المشفر سيكون كبيرًا جدًا. - Bakuriu
ينطبق التعليق @ Bakuriu لخادم Outlook + Exchange كذلك. أقترح أن السؤال الأساسي هو في الواقع لماذا عملاء البريد (في كثير من الأحيان - Tbird يبدو أفضل من النظرة مرة أخرى) تقرير فقط حجم الملف المحلي عندما يكون الحجم المشفر base64 المهم؟ - Chris H
MarcksThomas لا أريد المجادلة ضد نداء الحصول على مصدر واحد شامل يمكن البحث فيه بسهولة مقابل مجرد إمكانية الوصول إلى جميع المعارف بسهولة. لكن هل هذا ضروري؟ لا أعتقد ذلك. - لا أعتقد أن السؤال ليس مفيدًا على الإطلاق ، أعتقد فقط أنه لا يلبي المتطلبات الأساسية للحفاظ على الموقع خالية من الأسئلة غير الضرورية ويجعل من الصعب العثور على الأشياء المهمة حقًا ، ليس أجاب في أي مكان آخر. هذا ما يجب أن نفعله! - arc_lupus ، لأنني لا أتردد إلا في هذا الموقع ، عادة ، لا أتعرض لنقمة بلدي حتى الآن. ولكن كما هي ، فإنها تقف. - Alexander Kosubek
متعلق ب: superuser.com/questions/568506/... - glenneroo


الأجوبة:


بياناتك كانت 17 MiB. هناك 1024 KiB في MiB. هناك 1024 B في KiB. هناك 8 بت في بايت. هذا هو 142،606،336 بت.

يشفر الترميز Base 64 كل ستة بت كباقي منفصلة. لذلك نحن بحاجة إلى حوالي 23،767،722 بايت. القسمة على 1024 مرتين تحصل على 22.67 ميجابايت. هذا هو المكان الذي يأتي منه 22 MiB.

البريد الإلكتروني هو تقنية قديمة جدًا ولا تفترض أنبوبة نظيفة ذات 8 بت.


214
2017-10-26 20:49



لفك تشفير السطر الأخير قليلاً: base-64 هو طريقة لترميز المرفقات كنص باستخدام مجموعة محدودة من "الأحرف الآمنة المضمونة" التي لن تحصل على مشوهة بواسطة بعض المعدات الوسيطة ، مثل a-z ، A-Z ، 0-9 - Yorik
وبمجرد فهم الرياضيات في إجابة ديفيد الممتازة ، يمكنك فقط مضاعفة حجم المرفقات بـ 4/3 للحصول على حجم رسالة البريد التي سيتم إرسالها (بالإضافة إلى النص الفعلي). - Kent
حتى إذا عرف البريد الإلكتروني أنه يحتوي على ماسورة كاملة 8 بت ، فلا بد من ترميزها نظرًا لأنها في الأساس عبارة عن تيار نصوص - بعض الأحرف تخدم وظائف التحكم وبالتالي لا يجب أن تحدث في بياناتك. ومع ذلك ، هناك تقنيات ترميز أفضل لكنها لم يتم تبنيها. - Loren Pechtel
LorenPechtel يمكنك بسعادة الحصول على جزء تطبيق / ثماني بتات في رسالة MIME. كل ما عليك فعله هو اختيار حد لا يحدث في البيانات. - OrangeDog
ما base64 في الواقع يستخدم 4 بايت لكل 3 وحدات بايت أصلية. في حين أن هذا يبدو مشابها ، فمن المهم لأن الطول هو دائما مضاعفات 4 ، وأيضا لأنه لا يوجد سبب لمستوى البت. - njzk2


لماذا البريد الإلكتروني أكبر؟

لأنه يتم ترميز البيانات في base64 الذي يشفر مجموعات من ما يصل إلى ثلاثة بايت كمجموعات من أربعة أحرف ASCII للطباعة. عادةً ، يتم تقسيم هذه المجموعات من الأحرف القابلة للطباعة إلى أسطر.

والنتيجة هي أن البيانات المشفرة تزيد قليلاً عن 1 × ضعف حجم البيانات الأصلية.

لماذا يستخدم base64؟

البريد الإلكتروني لديه تاريخ طويل وكان في الأصل مصمم لحمل النص. يمكن فقط قيم البايت التي تمثل أحرف ASCII القابلة للطباعة أن تمر عبر مجموعة واسعة من أنظمة البريد الإلكتروني على هذا الكوكب.

لذا ، قسمت MIME نظامين لتشفير البيانات الأخرى كنص ASCII - "القابل للطباعة -" تم تصميمه لنص ASCII في الغالب مع بعض البتات الأخرى ، و "BASE64" للبيانات الثنائية التعسفية.

كانت هناك ملحقات بروتوكول SMTP لمحاولة إزالة هذه القيود. أولاً ، 8BITMIME في عام 1994 ، والتي سمحت بقيم ثماني بتات أعلى ولكن للأسف لم تقم بإزالة الحدود المتعلقة بأطوال الخطوط ونهايات الأسطر ، لذلك لم تكن مناسبة للبيانات الثنائية التعسفية ؛ ثم BINARYMIME في عام 1995 ، والذي سمح بنقل الرسائل التي تحتوي على بيانات ثنائية عشوائية.

ومع ذلك ، لم تشهد هذه المعايير اعتماد واسع النطاق. مشكلة واحدة هي ، ماذا يحدث إذا كانت إحدى القفزات في سلسلة البريد تدعمها ولكن القفزة التالية لا؟ يتعذر على خادم البريد بعد ذلك إرسال البريد كما هو ، يجب عليه إما رفضه على أنه غير قابل للتسليم وترتد إليه (وهو أمر غير مقبول للمستخدمين) ، أو تحويله (الذي يتطلب رمزًا إضافيًا مهمًا في خادم البريد) . يتم التحويل بشكل مؤلم بشكل خاص من خلال قواعد MIME المتعلقة بعدم استخدام ترميزات نقل المحتوى على أنواع متعددة الأجزاء.


50
2017-10-28 02:59



أتساءل لماذا yEnc ، من ناحية أخرى ، كان ناجحا للغاية في Usenet في تشريد UUE. ربما لأن مجموعات الأخبار الثنائية تضع ضغطًا أعلى بكثير على مزودي خدمات الإنترنت أكثر من البريد الإلكتروني ثنائي العرضي؟ - igorsk
igorsk: بالإضافة إلى Usenet / NN تم تقديمها وفهمها كمؤثر ، حيث يمكنك نشر مقالة ، وليس جميع المشتركين على جميع الخوادم ستتلقاها بالضرورة. كانت هناك (وتبقى إلى حد بعيد) عادات حول الاقتباس في "متابعة" كافية من المقالة (المقالات) السابقة التي يمكن أن يفهمها متابعتك من قبل شخص ما الذي لم يحصل على المادة (المقالات) السابقة. وعلى النقيض من ذلك ، فإن معظم مرسلي البريد الإلكتروني (غير المستجيبين) يتوقعون أن "يحصل النظام" على رسالتهم إلى المستلم (المستلمين) المحدد اسمه ، على الرغم من أنه قد يحدث أحيانًا بعد ساعات أو أيام ؛ الناس اليوم يشتكون حتى من تأخيرات قصيرة. - dave_thompson_085