قبل بضع سنوات، كان برنامج خادم البريد الإلكتروني المجاني الوحيد المتاح في بيئة Linux هو Sendmail. ومع ذلك، نظرًا لأوجه القصور في Sendmail، قام بعض المطورين بتطوير العديد من برامج خادم البريد الإلكتروني الأخرى. يوجد حاليًا العديد من الخيارات لخوادم البريد المجانية، أو MTA (وكيل نقل البريد)، التي تعمل في بيئة Linux، وتشمل الخيارات الأكثر شيوعًا Sendmail، وQmail، وPostfix، وexim، وZmailer، وما إلى ذلك. تأمل هذه المقالة في توضيح خصائص العديد من اتفاقيات MTAs الرئيسية في بيئة Linux والتي لها تأثير كبير نسبيًا، وتحليل ومقارنة مزاياها وعيوبها واحدة تلو الأخرى، بحيث يمكن للمستخدمين الاختيار عند اختيار MTA مجانية في Linux البيئة وفقا.
بوستفيكس
Postfix هو منتج لمشروع برمجي مجاني تموله شركة IBM وتم تطويره بواسطة Wietse Venema، والغرض منه هو تزويد المستخدمين باختيار خادم بريد آخر غير إرسال البريد. تسعى Postfix جاهدة إلى أن تكون سريعة وسهلة الإدارة وتوفر أكبر قدر ممكن من الأمان، وفي الوقت نفسه تحاول الحفاظ على التوافق مع خادم بريد البريد الإلكتروني لتلبية عادات استخدام المستخدمين. في البداية، تم إصدار Postfix تحت اسم VMailer، ولكن تم تغيير اسمه لاحقًا إلى Postfix لأسباب تتعلق بالعلامة التجارية.
أهداف التصميم الرئيسية
الهدف من مشروع Postfix هو تنفيذ خادم بريد يوفر للمستخدمين بديلاً لإرسال البريد. وتشمل أهداف تصميمه ما يلي:
من حيث الأداء، يعد Postfix أسرع بثلاث مرات من منتجات الخوادم المماثلة، ويمكن لجهاز الكمبيوتر المكتبي المثبت عليه Postfix إرسال واستقبال ملايين الرسائل يوميًا. يستخدم تصميم Postfix تقنيات تصميم خادم الويب لتقليل تكاليف إنشاء العمليات، ويستخدم تقنيات أخرى لتحسين الوصول إلى الملفات لتحسين الكفاءة مع ضمان موثوقية البرنامج.
التوافق. تم تصميم Postfix مع مراعاة التوافق مع Sendmail لتسهيل عملية النقل. يدعم Postfix ملفات /var[/spool] /mail، و/etc/aliases، وNIS، و~/.forward. ومع ذلك، من أجل ضمان بساطة الإدارة، لا يدعم Postfix ملف التكوين sendmail.cf.
الأمن والمتانة. تم تصميم Postfix لضمان موثوقية البرنامج حتى في ظل التحميل الزائد. عندما لا تكون هناك مساحة فارغة أو ذاكرة متاحة في نظام الملفات المحلي، سيستسلم Postfix تلقائيًا بدلاً من إعادة المحاولة لجعل الوضع أسوأ.
المرونة. يتكون Postfix بشكل هيكلي من أكثر من عشر وحدات فرعية صغيرة تكمل كل وحدة فرعية مهمة محددة، مثل تلقي رسالة عبر بروتوكول SMTP، أو إرسال رسالة، أو تسليم رسالة محليًا، أو إعادة كتابة عنوان، وما إلى ذلك. عندما تنشأ احتياجات محددة، يمكن استخدام إصدارات جديدة من الوحدات لتحل محل الوحدات القديمة دون تحديث البرنامج بأكمله. ومن السهل أيضًا إيقاف تشغيل إحدى الميزات.
حماية. يستخدم Postfix طبقات متعددة من الدفاع لحماية الأنظمة المحلية من المهاجمين. يمكن تشغيل كل برنامج Postfix تقريبًا تحت جذر ثابت منخفض الامتيازات. لا يوجد مسار مباشر بين الشبكة وبرامج التسليم المحلية الحساسة للأمان - يجب على المهاجم كسره أولاً من خلال عدة برامج أخرى قبل أن يتمكن من الوصول إلى النظام المحلي. لا يثق Postfix مطلقًا بمحتويات ملفات قائمة الانتظار الخاصة به أو رسائل IPC لمنع الانتحال. يقوم Postfix بتصفية الرسائل قبل إخراج الرسالة المقدمة من المرسل. ولا يحتوي برنامج Postfix على معرف ضبط.
بعض مميزات Postfix
دعم مجالات نقل متعددة: يدعم sendmai إعادة توجيه الرسائل بين الإنترنت وDECnet وX.400 وUUCP. تم تصميم Postfix ليكون مرنًا ولا يتطلب نطاقًا افتراضيًا (مجالًا مرئيًا) أو اسمًا مستعارًا لتحقيق هذا النوع من إعادة التوجيه. ومع ذلك، في الإصدارات المبكرة، تم دعم STMP فقط والدعم المحدود لـ UUCP، ولكن بالنسبة للمستخدمين الصينيين، فإن دعم مجالات الإرسال المتعددة لا معنى له.
النطاقات الافتراضية: في معظم الحالات الشائعة، يتطلب إضافة الدعم للنطاق الافتراضي تغيير جدول بحث Postfix. غالبًا ما تتطلب خوادم البريد الأخرى مستويات متعددة من الأسماء المستعارة أو إعادة التوجيه لتحقيق هذا التأثير.
التحكم في UCE (UCE، البريد الإلكتروني التجاري غير المرغوب فيه): يمكن لـ Postfix تحديد المضيفين المسموح لهم بإعادة توجيه رسائل البريد الإلكتروني من خلاله، ويدعم تحديد رسائل البريد الإلكتروني المسموح بالوصول إليها. ينفذ Postfix وظائف التحكم المعتادة: القوائم السوداء، وعمليات البحث عن RBL، والتحقق من HELO/DNS للمرسل. لا يتم حاليًا تنفيذ التصفية المستندة إلى المحتوى.
عرض الجدول: لا ينفذ Postfix لغة إعادة كتابة العنوان، ولكنه يستخدم عرض جدول موسع لتنفيذ وظيفة إعادة كتابة العنوان. يمكن أن تكون الجداول بتنسيقات ملفات dbm أو db محلية. [قص الصفحة]
بنية Postfix والمقارنة مع Sendmail
Postfix عبارة عن بنية تعتمد على عمليات شبه مقيمة وقابلة للتشغيل البيني. تكمل كل عملية مهمة محددة دون أي علاقة مشتقة محددة للعملية (العلاقة بين الوالدين والطفل). علاوة على ذلك، تتمتع العمليات المستقلة لإكمال وظائف مختلفة بعزلة أفضل من البرامج "المتجانسة". بالإضافة إلى ذلك، تتمتع طريقة التنفيذ هذه بميزة أن كل خدمة، مثل إعادة كتابة العنوان، يمكن استخدامها بواسطة أي مكون من مكونات Postfix دون تحميل عملية إنشاء، ولكنها تحتاج فقط إلى إعادة كتابة العنوان يتبنى هذا الأسلوب.
يتم تنفيذ Postfix بهذه الطريقة: يقوم خادم رئيسي مقيم بتشغيل البرنامج الخفي Postfix وفقًا للأوامر، ويكمل البرنامج الخفي وظائف مثل إرسال أو استقبال رسائل بريد الشبكة، وتسليم البريد محليًا، وما إلى ذلك. يتم تحديد عدد العمليات الخفية من خلال معلمات التكوين، ويتم تحديد عدد مرات تشغيل العملية الخفية (مرات إعادة الاستخدام) وفقًا للتكوين. عندما يصل وقت الخمول إلى الحد المحدد بواسطة معلمات التكوين، فسوف يموت تلقائيًا . تعمل هذه الطريقة على تقليل تكاليف إنشاء العملية بشكل كبير، ولكنها لا تزال تحافظ على عزل جيد بين العمليات الفردية.
الهدف من تصميم Postfix هو أن يصبح بديلاً لـ Sendmail. لهذا السبب، يمكن بسهولة استبدال أجزاء كثيرة من نظام Postfix، مثل برنامج التسليم المحلي، عن طريق تحرير وتعديل ملفات التكوين مثل inetd.
يتم تنفيذ جوهر Postfix من خلال أكثر من عشرة برامج شبه مقيمة. لأسباب تتعلق بالسرية، تتواصل عمليات Postfix هذه مع بعضها البعض من خلال مقابس Unix أو FIFOs ضمن أدلة محمية. على الرغم من أن السرية مضمونة باستخدام هذه الطريقة، إلا أن عملية Postfix لا تثق بشكل أعمى في البيانات التي تتلقاها بهذه الطريقة.
هناك حد لكمية البيانات المنقولة بين عمليات Postfix. في كثير من الحالات، تكون معلومات البيانات الوحيدة المتبادلة بين عمليات Postfix هي اسم ملف قائمة الانتظار وقائمة المستلمين، أو بعض معلومات الحالة. بمجرد حفظ رسالة بريد في ملف، ستبقى هناك حتى تتم قراءتها بواسطة برنامج تسليم البريد.
يستخدم Postfix بعض الإجراءات الشائعة لتجنب فقدان المعلومات: حفظ جميع البيانات على القرص عن طريق استدعاء Flush وfsync() قبل تلقي الإقرار. تحقق من نتائج الإرجاع لجميع مكالمات النظام لتجنب حالات الخطأ.
معظم الأشخاص الذين يقومون ببناء خوادم البريد سيختارون sendmail. لكي نكون منصفين، فإن sendmail هو MTA (وكيل نقل البريد) الجيد عندما تم تطويره لأول مرة، كان اهتمام تصميم Eric Allman منصبًا بشكل أساسي على نجاح تسليم البريد. لسوء الحظ، تم تطوير Sendmai دون مراعاة كبيرة للمشكلات الأمنية التي قد تتم مواجهتها في بيئة الإنترنت. لا يمكن تشغيل Sendmail إلا كمستخدم أساسي في معظم الأنظمة، مما يعني أن أي ثغرة يمكن أن يكون لها عواقب وخيمة للغاية. بالإضافة إلى هذه المشكلات، لا يعمل Sendmail بشكل جيد في ظل التحميل العالي.
أمان
ليس من الضروري تشغيل Postfix كجذر، ولكنه يتطلب فقط برنامجًا رئيسيًا للتشغيل كجذر، مما يؤدي إلى إنشاء عمليات للتعامل مع الوصول وتسليم البريد الصادر والمحلي. باستخدام سلسلة من المكونات المعيارية، يتم تشغيل كل مهمة بواسطة برنامج منفصل (مما يجعل عملية التدقيق أسهل). على سبيل المثال، يتم تفريغ بريد إلكتروني صادر إلى دليل قائمة الانتظار، حيث يقوم برنامج "pcikup" بجلب البريد الإلكتروني وتمريره إلى برنامج "cleanup"، الذي يقوم بعد ذلك بتمرير البريد الإلكتروني إلى "trivial-rewrite"، وهو المسؤول عن معالجة البريد الإلكتروني. عنوان البريد الإلكتروني أخيرًا، إذا كان الغرض من البريد هو أن تقوم الأنظمة الأخرى بتسليم البريد إلى برنامج "smtp". وبالمقارنة مع Sendmail، يعد Postfix أيضًا أسهل في إعداد بيئة تم إنشاؤها. يتم تحقيق ذلك ببساطة عن طريق تحرير ملف master.cf (الموجود عادةً في /etc/postfix)، وسيتم نقل Postfix إلى دليل قائمة الانتظار الذي يحدده (الموجود عادةً في /var/spool/postfix)، ويمكنك أيضًا تعيين حدود العملية لوحدة Postfix واحدة في master.cf. يمكن للمستخدمين تقييد المستخدم الذي يعمل عليه Postfix بشكل عام، يتم تشغيله كمستخدم "postfix" (من الناحية النظرية، هذا المستخدم مشابه لمستخدم Apache. يمكن لهذا المستخدم الوصول إلى أدلة قائمة انتظار محددة). الميزة الرئيسية الأخرى لـ Postfix هي الوضوح وسهولة فهم ملفات التكوين.
المقارنة مع Sendmail تم تصميم أنظمة البريد مثل sendmail وتنفيذها وفقًا لبنية الكتلة الواحدة. يقوم هذا البرنامج "ذو الكتلة الواحدة" بتنفيذ جميع الوظائف. بالطبع يسهل هذا الهيكل تبادل البيانات بين أجزاء مختلفة من النظام. لكن هذا الهيكل عرضة لبعض الأخطاء القاتلة. تستخدم أنظمة البريد مثل qmail بنية هرمية لتشغيل عمليات الوحدة الفرعية بوظائف مختلفة بترتيب ثابت، وتحريرها بعد التنفيذ. تتمتع هذه الطريقة بخصائص "عزل" جيدة، ولكنها تزيد من تكاليف إنشاء العملية وتكاليف الاتصالات بين العمليات. ومع ذلك، يمكن الاحتفاظ بالحمل ضمن نطاق مقبول من خلال التخطيط المعقول لترتيب تشغيل عمليات الوحدة الفرعية.
يعد استخدام MTA أخرى لاستبدال Sendmail أمرًا مزعجًا للغاية، وغالبًا ما يضطر المستخدمون إلى قضاء الكثير من الوقت للتعرف على تكوين MTA الجديد واستخدامه. مع Postfix، يمكنك الاستفادة من العديد من ملفات التكوين الموجودة. مثل (access، والأسماء المستعارة، وvirtusertable، وما إلى ذلك)، ما عليك سوى تعريفها ببساطة في master.cf. بالإضافة إلى ذلك، يتصرف Postfix أيضًا مثل Sendmail إلى حد كبير. يمكن للمستخدمين استخدام الأمر sendmail لبدء Postfix.
وبطبيعة الحال، فإن استخدام برنامج ما ليحل محل برنامج آخر يتطلب حل مشاكل محددة. ويرجع ذلك جزئيًا إلى ميزات الأمان التي يوفرها Postfix، وقد تواجه بعض المشكلات عند تكوين Postfix. المشكلة الأكثر شيوعًا هي إرسال البريد إلى المستخدم الجذر. Postfix بشكل عام لا يزيد من الامتيازات الخاصة به (الضرورية لإرسال البريد إلى المستخدم الجذر) لتسليم البريد. يحتاج المستخدمون إلى تحديد اسم مستعار للجذر في ملف الاسم المستعار، مثل: root: someuser. يؤثر هذا أيضًا على العديد من وحدات القائمة البريدية، وخاصة SmartList. بشكل عام، من الأفضل استخدام Majordomo لتنفيذ القوائم البريدية، والتي يسهل تكوينها.
إحدى المشكلات البارزة جدًا في Sendmail هي مشكلات قابلية التوسع والأداء. على سبيل المثال، إذا أراد المستخدم إعادة تشغيل Sendmail كل يوم لتحديث ملف التكوين تلقائيًا (مثل إعادة توجيه البريد لمضيف ظاهري)، فستظهر المشاكل. يقوم Sendmail بإنشاء عمليات جديدة للتعامل مع إرسال واستقبال رسائل البريد الإلكتروني، وستظل هذه العمليات موجودة حتى اكتمال الإرسال، وبعد ذلك يمكن لـ Sendmail الخروج بهذه الطريقة، لن يتمكن البرنامج النصي الخاص بك من إعادة تشغيل Sendmail بشكل صحيح. بالنسبة إلى Postfix، يحتاج المستخدمون فقط إلى إصدار الأمر postfix reload، وسيقوم Postfix بإعادة تحميل ملف التكوين الخاص به.
بالإضافة إلى ذلك، بالنسبة لخوادم البريد التي تضم عشرات الآلاف من المستخدمين، استخدم الملفات لتخزين عناوين البريد الإلكتروني المطابقة التي أرسلها المستخدمون (على سبيل المثال، يتم تغيير مرسل الرسالة المرسلة بواسطة bob إلى [email protected]). بالنسبة لعدد كبير من المستخدمين، سيصبح الملف كبيرًا جدًا، مما يؤثر على كفاءة تشغيل النظام. يمكن دمج Postfix مع الواجهة الخلفية لقاعدة البيانات (حاليًا تدعم MySQL فقط) لتخزين معلومات التكوين الخاصة بها. تعد طريقة قاعدة البيانات أقوى بكثير من طريقة الملف في قابلية التوسع.
من خلال الامتثال لترخيص حقوق الطبع والنشر مفتوح المصدر لشركة IBM، يمكن للمستخدمين توزيع البرنامج بحرية وإجراء التطوير الثانوي. القيد الوحيد هو أن التغييرات التي تم إجراؤها على Postfix يجب أن يتم إرجاعها إلى IBM. لأن IBM قامت بتمويل تطوير Wietse.
المقارنة مع Qmail
عيب Qmail هو أن طريقة التكوين غير متوافقة مع Sendmail وليس من السهل صيانتها. علاوة على ذلك، فإن ترخيص حقوق الطبع والنشر الخاص بـ Qmail غامض جدًا ولا يتم إصداره مع البرنامج. ملاحظة من مؤلف التطبيق: إذا كنت ترغب في توزيع نسختك المعدلة من Qmail، فيجب عليك الحصول على إذن مني.
Qmail qmail عبارة عن MTA قابلة للتنزيل مجانًا تم تطويرها بواسطة Dan Bernstein وتم إصدار الإصدار التجريبي الأول 0.70.7 في 24 يناير 1996. وتم إصدار الإصدار 1.0 في فبراير 1997. الإصدار الحالي هو 1.03. [قص الصفحة]
مميزات برنامج Qmail
الأمان من أجل التحقق من أمان Qmail، عرض مؤيدو Qmail مكافأة قدرها 1000 دولار للعثور على ثغرات أمنية في Qmail. وبعد مرور عام، لم يتم المطالبة بالمكافأة وتم التبرع بها إلى مؤسسة البرمجيات الحرة. حاليًا، استثمر مؤلف Qmail أيضًا 500 دولار للعثور على ثغرات أمنية في Qmail.
السرعة: يستطيع Qmail تسليم ما يقرب من مليون بريد إلكتروني على نظام متوسط الحجم، كما يمكنه التعامل مع أكثر من 100000 بريد إلكتروني يوميًا على جهاز 486، ويدعم التسليم المتوازي. يدعم Qmail التسليم المتوازي لرسائل البريد الإلكتروني ويمكنه تسليم ما يقرب من 20 رسالة بريد إلكتروني في نفس الوقت. يكمن الاختناق الحالي في تسليم البريد الإلكتروني في بروتوكول SMTP، حيث يستغرق تسليم بريد إلكتروني إلى مضيف إنترنت آخر من خلال STMP أكثر من 10 ثوانٍ. اقترح مؤلف Qmail QMTP (بروتوكول نقل البريد السريع) لتسريع تسليم البريد، وهو مدعوم في Qmail. الهدف من تصميم Qmail هو أن يكون قادرًا في النهاية على تسليم ما يقرب من مليون رسالة بريد إلكتروني يوميًا على جهاز يبلغ حجمه 16 مليونًا.
الموثوقية: من أجل ضمان الموثوقية، لن يقوم Qmail بإرجاع نتيجة معالجة ناجحة إلا عند كتابة البريد الإلكتروني بشكل صحيح على القرص. بهذه الطريقة، حتى في حالة حدوث عطل في النظام أو انقطاع التيار الكهربائي أثناء كتابة القرص، يمكن ضمان عدم حدوث البريد الإلكتروني بدلا من ذلك، إعادة تسليم.
لا سيما إدارة النطاق الظاهري البسيطة، حتى أن هناك وظيفة إضافية مطورة من طرف ثالث تسمى vpopmail لدعم مجالات POP الافتراضية. لاستخدام هذه الحزمة، لا يحتاج مستخدمو POP3 إلى الحصول على حساب رسمي على النظام.
استخدم ezmlm لدعم وظائف القائمة البريدية التي يتحكم فيها المستخدم.
يتم عزل مستخدمي البريد وحسابات النظام. إن تزويد المستخدمين بحسابات البريد لا يتطلب إعداد حسابات النظام لهم، وبالتالي زيادة الأمان.
Sendmail مقابل Qmail
أولًا: sendmail هو MTA له تاريخ طويل من التطوير، والإصدار الحالي هو 8.10.2. وبطبيعة الحال، يتمتع Sendmail بضمانات معينة من حيث قابلية النقل والاستقرار والتأكد من خلوه من الأخطاء. ولكن هناك العديد من المنشورات على الإنترنت حول مهاجمة Sendmail، وهو ما يمثل كابوسًا للمسؤولين. أثناء عملية تطوير Sendmail، تم إنتاج مجموعة من مسؤولي Sendmail ذوي الخبرة، ويحتوي Sendmail على عدد كبير من الوثائق الكاملة. بالإضافة إلى مجموعة Sendmail: كتاب O'Reilly's sendmail الذي كتبه Bryan Costales مع إريك ألمان، هناك عدد كبير عدد من الدروس على شبكة الإنترنت، والأسئلة الشائعة والموارد الأخرى. تعتبر هذه الكميات الكبيرة من المستندات مهمة جدًا للاستفادة بشكل جيد من ميزات Sendmail المتنوعة. لكن Sendmai هي حاليًا MTA ناضجة.
بالطبع، لدى Sendmail بعض العيوب، فهو يحتوي على الكثير من الميزات التي تؤدي إلى تعقيد ملف التكوين. وبطبيعة الحال، يصبح إنشاء ملفات التكوين أسهل بكثير باستخدام الماكرو m4. ومع ذلك، ليس من السهل السيطرة على جميع خيارات التكوين. كان لدى Sendmail العديد من الثغرات الأمنية في الإصدارات السابقة، لذلك كان على المسؤولين ترقية الإصدار بسرعة. كما أن شعبية Sendmail تجعله أيضًا هدفًا للهجمات، وهو ما له مزايا وعيوب: فهو يعني أنه يمكن اكتشاف الثغرات الأمنية بسرعة، ولكنه أيضًا يجعل Sendmail أكثر استقرارًا وأمانًا. هناك مشكلة أخرى وهي أن التكوين الافتراضي لـ Sendmail يحتوي بشكل عام على الحد الأدنى من ميزات الأمان، مما يجعل Sendmail عرضة للهجمات في كثير من الأحيان. إذا كنت تستخدم Sendmail، فيجب عليك التأكد من فهم معنى كل خيار تفتحه وتأثيره. بمجرد أن تفهم كيفية عمل Sendmail، يصبح تثبيت Sendmail وصيانته أمرًا سهلاً للغاية. من خلال ملف تكوين Sendmail، يمكن للمستخدمين تلبية جميع الاحتياجات التي يمكن تخيلها.
Qmail هو خيار تم تصميمه وتنفيذه مع أخذ المشكلات الأمنية في الاعتبار. إذا كنت بحاجة إلى حل سريع مثل بوابة بريد إلكتروني آمنة، فإن Qmail هو خيار جيد. تختلف ملفات تكوين Qmail وSendmail تمامًا. أما بالنسبة لـ Qmail، فهو يحتوي على ملف تكوين خاص به، ويحتوي دليل التكوين على 5-30 ملفًا مختلفًا، ويقوم كل ملف بتنفيذ تكوين أجزاء مختلفة (مثل النطاقات الافتراضية أو المضيفين الظاهريين، وما إلى ذلك). تم توثيق تعليمات التكوين هذه جيدًا، لكن بنية كود Qmail ليست جيدة جدًا.
Qmail أصغر بكثير من Sendmail ويفتقر إلى بعض الميزات الموجودة في خوادم البريد اليوم. على عكس Sendmail، لا يتحقق qmail من اسم المجال الخاص بمرسل مظروف البريد الإلكتروني للتأكد من صحة اسم النطاق. لا يوفر دعمًا لـ RBL نفسه، ولكنه يتطلب وظيفة إضافية لتنفيذه. ويدعم Sendmail RBL. وبالمثل، لا يستطيع Qmail رفض تلقي رسائل البريد الإلكتروني التي لا يوجد مستلمها المقصود، وبدلاً من ذلك، سيتلقى رسائل البريد الإلكتروني أولاً ثم يعيد رسائل البريد الإلكتروني التي لا تخص هذا المستخدم. تكمن أكبر مشكلة في Qmail في معالجة إرسال رسائل البريد الإلكتروني إلى عدة مستلمين. إذا قمت بإرسال بريد إلكتروني كبير الحجم إلى عدة مستخدمين في نفس المجال، فلن يرسل Sendmail سوى نسخة من البريد الإلكتروني إلى خادم البريد الوجهة. سيتصل Qmail عدة مرات بالتوازي، ويرسل نسخة إلى المستخدم في كل مرة. إذا كان المستخدمون بحاجة إلى إرسال رسائل بريد إلكتروني كبيرة إلى عدة مستخدمين يوميًا، فإن استخدام Qmail سيضيع الكثير من النطاق الترددي. يمكنك التفكير في الأمر بهذه الطريقة: يؤدي تحسين Sendmail إلى توفير موارد النطاق الترددي، كما يوفر تحسين Qmail الوقت. إذا كان نظام المستخدم يتمتع بنطاق ترددي جيد، فسيكون لدى Qmail أداء أفضل. وإذا كان نظام المستخدم لديه موارد نطاق ترددي محدودة ويحتاج إلى إرسال الكثير من معلومات القائمة البريدية، فسيكون Sendmail أكثر كفاءة. Qmail لا يدعم .forward (يعتبر .forward مفيدًا جدًا للمستخدمين في كثير من الحالات)؛ فهو لا يستخدم /var/spool/mail، ولكنه يخزن رسائل البريد في الدليل الرئيسي للمستخدم. فيما يلي بعض المهام التي ليس من السهل إكمالها باستخدام Qmail. لإكمال هذه المهام باستخدام Qmail، قد يحتاج المستخدمون إلى تنفيذها بأنفسهم أو استخدام وحدات غير موثوقة مقدمة من جهات خارجية.
إن الكود المصدري لـ Qmail أسهل في الفهم من Sendmail، وهي ميزة لأولئك الذين يريدون فهم آلية MTA داخليًا. يجب أن يكون Qmail أيضًا أكثر استقرارًا من حيث الأمان. يتمتع Qmail بدعم فني جيد، ولكنه لا يستخدم على نطاق واسع ولديه قاعدة مستخدمين إدارية كبيرة مثل Sendmail. لا يتم تثبيت Qmail تلقائيًا مثل Sendmail ويتطلب خطوات يدوية. علاوة على ذلك، فإن وثائق Qmail ليست كاملة وغنية مثل وثائق Sendmail.
يحتوي Qmail على وظائف إضافية أقل من Sendmail. بشكل عام، بالنسبة للمسؤولين ذوي الخبرة الأقل قليلاً، فمن الأفضل نسبيًا اختيار Qmail. Qmail أبسط، ووظائفه الخاصة يمكن أن تلبي احتياجات المستخدمين العاديين. يشبه Sendmail مجموعة Office، وغالبًا ما لا يتم استخدام 80٪ من وظائفه. وهذا يجعل Qmail أكثر شهرة في بعض المواقف. فهو يحتوي على بعض الميزات الأكثر شيوعًا والعملية التي لا يمتلكها Sendmail. على سبيل المثال، يحتوي Qmail على دعم pop3. يدعم Qmail أيضًا تمويه المضيف أو المستخدم، والمجالات الافتراضية، وما إلى ذلك. كما أن بساطة Qmail تجعل عملية التكوين سهلة نسبيًا.
يعتبر Qmail أكثر أمانًا وفعالية من Sendmail، ويمكن لجهاز بنتيوم يعمل بنظام Qmail معالجة ما يقرب من 2000000 رسالة يوميًا.
يعد qmail أبسط بكثير من MTAs الأخرى، وينعكس ذلك بشكل رئيسي في:
(1) تستخدم اتفاقيات التجارة المتعددة الأخرى آليات مستقلة لإعادة توجيه البريد، والأسماء المستعارة للبريد، والقوائم البريدية، بينما يستخدم qmail آلية إعادة توجيه بسيطة للسماح للمستخدمين بمعالجة قوائمهم البريدية الخاصة.
(2) توفر MTAs الأخرى آليات تسليم البريد بطريقة سريعة وغير آمنة وطريقة انتظار بطيئة؛ بينما يتم تشغيل تسليم qmail عن طريق ظهور بريد جديد، لذلك يكون للتسليم وضع واحد فقط: طريقة قائمة الانتظار السريعة
(3) تتضمن MTAs الأخرى في الواقع إصدارًا محددًا من inetd لمراقبة متوسط تحميل MTA، بينما صمم qmail آلية داخلية للحد من تحميل النظام، بحيث يمكن تشغيل qmail-smtpd بأمان من inet الخاص بالنظام
يتمتع sendmail بالكثير من الدعم التجاري، ونظرًا لقاعدة المستخدمين الكبيرة، يوجد الكثير من الدعم الفني المحتمل على الإنترنت. يتمتع Qmail بدعم فني محدود للغاية. هناك شركة inter7.com توفر الدعم لـ Qmail، وتوفر الشركة أيضًا إضافات مجانية، بما في ذلك أداة الإدارة المستندة إلى الويب - QmailAdmin ودعم المجالات الافتراضية من خلال vpopmail، وحتى واجهة الاقتراض المستندة إلى الويب. SqWebMail.
لدى Qmail أيضًا بعض العيوب الأخرى. على سبيل المثال، لا يتوافق تمامًا مع المعايير ولا يدعم DSN. يعتقد المؤلف أن DSN هي تقنية تحتضر، ويمكن لـ VERP الخاص بـ Qmail إكمال نفس العمل دون الاعتماد على دعم مضيفين آخرين مثل DSN. مشكلة أخرى في Qmail هي أنه لا يتوافق مع معيار نظام 7 بت ويرسل 8 بت في كل مرة. إذا لم يتمكن الطرف المتلقي للبريد الإلكتروني من التعامل مع هذا الموقف، فسيتم تشويه البريد الإلكتروني.
من حيث الأمان، فإن Sendmail أسوأ من Qmail. لقد واجه Sendmail العديد من الثغرات الأمنية الشهيرة أثناء تطويره؛ في حين أن Qmail قصير وموجز نسبيًا، ولكنه لا يزال يوفر وظائف STMP الأساسية. تعليقات رمز Qmail أقل. إحدى الميزات الرائعة في Qmail هي دعمه لتنسيق تخزين البريد الاختياري المستند إلى الدليل، بدلاً من استخدام ملف واحد كبير لتخزين كل بريد المستخدم. إذا كان خادم البريد الخاص بالمستخدم ينفذ العديد من خدمات POP3، فيمكن لتنسيق تخزين البريد هذا تحسين الكفاءة. لسوء الحظ، لا يدعم Pine نفسه تنسيق التخزين هذا، إذا لزم الأمر، يمكنك استخدام بعض التصحيحات لتحقيق هذا الغرض.
ميزة Qmail هي أنه يمكن لكل مستخدم إنشاء قائمة بريدية دون الحصول على أذونات المستخدم الجذر، على سبيل المثال، يمكن للمستخدم foo إنشاء قائمة بريدية باسم foo-slashdot، foo-linux، foo-chickens من أجل توفير وظائف أفضل هي أداة تسمى ezmlm (EZ Mailing List Maker) يمكنها دعم وظائف Majordomo المختلفة مثل التسجيل التلقائي وتسجيل الخروج والفهرسة وما إلى ذلك، ولكنها كلها تعتمد على CLI ولا تتطلب سوى عدد قليل من الملفات لتحريرها. يعد Qmail مناسبًا جدًا للعمل على الأنظمة الصغيرة، والتي تدعم عمومًا عددًا صغيرًا فقط من المستخدمين أو تُستخدم لإدارة القوائم البريدية. Qmail سريع وبسيط: Qmail هو الخيار الأفضل عندما تريد الأمان والتكوين السهل؛ يمكن تكوين Qmail خلال ساعتين، بينما قد لا تتمكن من تكوين Sendmail خلال يومين.
Rocketmail Internic، وما إلى ذلك، كلها مبنية باستخدام qmail
ZMailer
ZMailer هو برنامج بريد عالي الأداء ومتعدد العمليات لأنظمة Unix. [المعروف أيضًا باسم MTA لكل لغة X.400]، والتي يمكن تنزيلها مجانًا من الخادم ftp://ftp.funet.fi/pub/unix/mail/zmailer/. وهي مصممة أيضًا في وضع قطعة واحدة. تم إنشاء أنظمة البريد مثل Hotmail باستخدام Zmailer.
Exim Exim هو برنامج MTA متوافق مع GPL تم تطويره بواسطة جامعة كامبريدج، ويشبه أسلوبه أسلوب Smail 3، ولكنه أكثر اكتمالاً من Smail 3. الإصدار الأخير هو 3.15. موقعها الرئيسي هو http://www.exim.org/. أكبر ميزة له هي بساطة التكوين، لكن أمانه ليس بجودة Qmail وPostfix.
فيما يلي مقارنة بين خصائص العديد من اتفاقيات MTAs بشكل عام، يعد كل من Qmail وPostfix اتفاقات نقل بيانات جيدة جدًا. غالبًا ما تكون معايير الاختيار مسألة تفضيل شخصي.
ميزات الأمان لنضج MTA، الأداء، التوافق مع Sendmail، التصميم المعياري، qmail، متوسط، مرتفع، مرتفع، إضافات، نعم، Sendmail، مرتفع، منخفض، مرتفع، منخفض، x لا، Postfix، منخفض، مرتفع، مرتفع، نعم، exim، متوسط، منخفض، مرتفع، متوسط، نعم لا
بالطبع، بالإضافة إلى العديد من اتفاقيات التجارة المتعددة المقدمة هنا، هناك أيضًا اتفاقيات متعددة تجارية أو مجانية أخرى متاحة.