Postfix هو وكيل نقل البريد مفتوح المصدر (MTA) الذي يمكن استخدامه لتوجيه وتسليم البريد الإلكتروني على نظام Linux، وتشير التقديرات إلى أن حوالي 25 ٪ من خوادم البريد العام على الإنترنت تعمل على تشغيل Postfix.
في هذا المقال، سنعلمك كيفية تثبيت Postfix وتشغيله بسرعة على خادم يعمل بنظام تشغيل أوبنتو 18.04.
المتطلبات الأساسية
من أجل تطبيق هذا المقال، يجب أن يكون لديك حق الوصول كمستخدم غير جذري (non-root) يملك صلاحيات sudo، للتعرف على كيفية إعداد ذلك يمكنك اتباع دليل الإعداد الأولي لخادم اوبنتو18.04 لإنشاء المستخدم.
لإعداد Postfix بشكل صحيح، ستحتاج إلى اسم نطاق (Domain Name) مؤهل بالكامل يتم توجيهه إلى خادم اوبنتو 18.04، يمكنك العثور على مساعدة في إعداد اسم النطاق (Domain Name) الخاص بك باستخدام DigitalOcean باتباع هذا المقال، إذا كنت تخطط لقبول البريد، فستحتاج إلى التأكد من أن لديك سجل MX يشير إلى خادم البريد الخاص بك.
لأغراض هذا المقال التعليمي، سنفترض أنك تقوم بإعداد الحاسوب المضيف له FQDN الخاص بـ mail.example.com.
الخطوة الأولى: تثبيت Postfix
يوجد Postfix في متجر أوبنتو الافتراضي، لذلك تثبيته بسيط. ابدأ أولًا تحديث ذاكرة التخزين المؤقت لحزمة apt الخاصة بك ثم قم بتثبيت البرنامج، سنقوم بتمرير DEBIAN_PRIORITY=low كمتغير في أمر التثبيت الخاص بنا للرد على بعض المتطلبات الإضافية:
$ sudo apt update $ sudo DEBIAN_PRIORITY=low apt install postfix
استخدم المعلومات التالية لملء المطلوب بشكل صحيح للبيئة الخاصة بك:
-
النوع العام من إعدادات البريد (General type of mail configuration): سنختار موقع إنترنت لأن هذا يتناسب مع احتياجات البنية الأساسية لدينا.
-
اسم نظام البريد (System mail name): هذا هو المجال الأساسي للمستخدم من أجل إنشاء عنوان بريد إلكتروني صحيح عند تقديم جزء من عنوان الحساب العنوان الحساب فقط على سبيل المثال، اسم hostname هو mail.example.com لكن ربما نرغب في تعيين اسم بريد النظام إلى example.com يتم إعطاؤه اسم المستخدم user1، سيستخدم Postfix العنوان user1@example.com.
-
مستلما البريد root و postmaster (Root and postmaster mail recipient): هما عبارة عن حسابات Linux يقومان بإعادة ارسال عنوان البريد إلى root@ و postmaster@، استخدم حسابك الأساسي لهذا الغرض في مثالنا هو sammy.
-
مستقبلات أخرى لقبول البريد (Other destinations to accept mail for): وهذا يعرف بمستقبلات البريد التي تقبل Postfix instance، إذا كنت بحاجة لإضافة أي نطاقات أخرى سيكون هذا الخادم مسؤولاً عن تلقيها، فأضف تلك النطاقات هنا وإلا سيطبق الإعداد الافتراضي.
-
فرض تحديثات متزامنة على قائمة انتظار البريد؟ (Force synchronous updates on mail queue?): نظرًا لأنك تستخدم على الأرجح ملفات النظام ، فقم برد ب "لا" هنا.
-
الشبكات المحلية (Local networks): هذه قائمة من الشبكات التي تم إعدادها بخادم البريد الخاص بك من أجل ترحيل الرسائل، بمعظم الحالات سيعمل الإعداد الافتراضي، ولكن إذا اخترت تعديله ، فتأكد من أن يكون مقيدًا للغاية فيما يتعلق بنطاق الشبكة.
-
تحديد الحد الأعلى لحجم صندوق البريد الوارد (Mailbox size limit): يستخدم هذا الحد للحد من حجم الرسائل الواردة و يتم تعطيل أي قيود على حجم البريد بضبطه على 0.
-
الحرف المضاف للعنوان المحلي (Local address extension character): هذا الحرف يستخدم للفصل بين الجزء العادي من العنوان و الجزء المضاف (يستخدم لإنشاء أسماء مستعارة ديناميكية).
-
برتوكولات الانترنت الواجب استخدامها (Internet protocols to use): اختر اذا ما كنت تريد تقييد اصدار IP الذي سيدعمه Postfix، سنختار كل IP لاغراضنا هنا.
هذه هي الإعدادات التي سنستخدمها في هذا الدليل:
General type of mail configuration?: Internet Site System mail name: example.com (not mail.example.com) Root and postmaster mail recipient: sammy Other destinations to accept mail for: $myhostname, example.com, mail.example.com, localhost.example.com, localhost Force synchronous updates on mail queue?: No Local networks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 Mailbox size limit: 0 Local address extension character: + Internet protocols to use: all
من أجل اعادة ضبط الاعدادات السابقة بأي وقت يمكنك ذلك بتنفيذ الأمر التالي:
$ sudo dpkg-reconfigure postfix
سيتم ملء الطلبات السابقة بالردود السابقة بشكل تلقائي. عند الانتهاء ، يمكننا الآن إجراء المزيد من التهيئة لإعداد نظامنا بالطريقة التي نرغب بها.
الخطوة الثانية: تحسين إعدادات Postfix
بعد ذلك، يمكننا ضبط بعض الإعدادات التي لم تطلبها منا الحزمة.
بدايةً، يمكننا ضبط صندوق البريد؛سوف نستخدم تنسيق Maildi الذي يفصل الرسائل إلى ملفات فردية يتم نقلها بين المجلدات بناءً على إجراء المستخدم أما الخيار الآخر فهو تنسيق mbox (الذي لن نغطيه هنا) الذي يخزن جميع الرسائل في ملف واحد.
سنقوم بتعيين المتغير home_mailbox
إلى القيمة Maildir/
أي ننشئ مجلدًا داخل المجلد الرئيسي للمستخدم إن استخدام الامر Postconf
سيقوم بضبط الإعدادات اكتب الامر التالي لإعداد home/mailbox
:
$ sudo postconf -e 'home_mailbox= Maildir/'
بعد ذلك، يمكنك تعيين موقع الجدول virtual_alias_maps
الذي يحتوي حسابات البريد الإلكتروني المرتبطة بحسابات نظام Linux، سننشئ هذا الجدول في etc/postfix/virtual/
سنستخدم الأمر postconf
مرة اخرى:
$ sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'
الخطوة الثالثة: خريطة عناوين البريد لحسابات Linux
الآن سنقوم باعادة إعداد ملف جدول الخرائط الإفتراضي، افتح الملف في محرر النصوص الخاص بك:
$sudo nano /etc/postfix/virtual
يستخدم الاسم المستعار في جدول خريطة الافتراضي تنسيقًا بسيطًا على اليسار إذ يمكنك عرض أي عناوين ترغب في قبول بريدها الإلكتروني افصل بينها وبين اسم مستخدم Linux الذي ترغب في تسليم البريد إليه بمسافة بيضاء ثم أدخل مستخدم Linux.
على سبيل المثال إذا كنت ترغب بقبول البريد الإلكتروني contact@example.com والبريد admin@example.com وترغب في تسليم رسائل البريد الإلكتروني هذه إلى المستخدم sammy، فيمكنك إعداد الملف /etc/postfix/virtual كما يلي:
contact@example.com sammy admin@example.com sammy
بعد تعيين جميع العناوين على حسابات الخادم المناسبة، احفظ وأغلق الملف. يمكننا تطبيق وتفعيل السابق بتنفيذ الأمر:
$ sudo postmap /etc/postfix/virtual
أعد تشغيل عملية Postfix للتأكد من تطبيق جميع التغييرات:
$sudo systemctl restart postfix
أصبح خادم Postfix الآن مثبت وجاهز؛ سنقوم بإعداد عميل يمكنه التعامل مع البريد الذي يعالجه Postfix.
الخطوة الرابعة: ضبط جدار الحماية
إذا كنت تقوم بتشغيل جدار حماية UFW باعدادت الأولية التي تم تهيئة الخادم عليها سوف يتعين علينا السماح باستثناء Postfix. يمكنك السماح بالاتصالات بالخدمة بتنفيذ الأمر التالي:
$ sudo ufw allow Postfix
الآن خادم Postfix مثبت وجاهز سنقوم بإعداد عميل يمكنه التعامل مع البريد الذي يعالجه Postfix.
الخطوة الخامسة: إعداد البيئة لربطها مع موقع البريد
قبل أن نثبت العميل يجب أن نتأكد من صحة متغير بيئة MAIL الخاص بنا معدة بشكل صحيح، سيقوم العميل بفحص هذا المتغير لمعرفة مكان الذي أبحث فيه عن بريد المستخدم. من أجل تعيين المتغير بغض النظر عن كيفية وصولك إلى حسابك (من خلال ssh ، su ، su - ، sudo ، إلخ) ، نحتاج إلى تعيين المتغير في عدة مواقع مختلفة؛ سنقوم بإضافته إلى داخل ملفetc/bash.bashrc/
و ملفetc/profile.d/
للتأكد من أن كل مستخدم لديه هذا الإعداد. من أجل إضافة المتغير إلى هذه الملفات نفذ الأمر التالي:
$echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh
لقراءة المتغير في جلستك الحالية يمكنك تنفيذ على الملف etc/profile.d/mail.sh/
:
$ source /etc/profile.d/mail.sh
الخطوة السادسة: تثبيت وإعداد بريد العميل
للتفاعل مع البريد الذي يتم تسليمه؛ سنقوم بتثبيت حزمةs-nail
وهو البديل عن عميل BSD xmail
الغني بالميزات ويمكنه التعامل مع تنسيق Maildir بشكل صحيح، وغالبًا ما يكون متوافقًا مع الإصدارات السابقة، يحتوي إصدار GNU للبريد على بعض القيود مثل حفظ بريد القراءة دائمًا بتنسيق mbox بغض النظر عن التنسيق المصدر. لتنزيل حزمة s-nail نستخدم الأمر:
$ sudo apt install s-nail
من أجل ضبط بعض الإعدادات افتح الملف etc/s-nail.rc/
باستخدام محرر النصوص الخاص بك:
$ sudo nano /etc/s-nail.rc
أضف الخيارات التالية في أسفل الملف /etc/s-nail.rc
:
. . . set emptystart set folder=Maildir set record=+sent
سيتيح هذا للعميل فتحه حتى مع البريد الوارد الفارغ؛ سيقوم أيضًا بتعيين المجلد Maildir داخل المجلد الداخلي ثم سيستخدم لإنشاء ملف mbox الذي تم ارساله ويخزن البريد المرسل.
احفظ وأغلق الملف عند الانتهاء.
الخطوة السابعة: تهيئة Maildir واختبار العميل
الآن، يمكننا اختبار العميل من الخارج:
تهيئة بنية المجلد
أسهل طريقة لإنشاء Maildir في مجلدنا الرئيسي هي إرسال بريد إلكتروني إلى أنفسنا يمكننا القيام بذلك باستخدام الأمر s-nail
نظرًا لأن الملف المرسل لن يكون متاحًا إلا بعد إنشاء Maildir، سنقوم بتعطيل الكتابة لهذا البريد الإلكتروني الأولي باستخدام الخيار Snorecord-
.
أرسل رسالة بريد إلكتروني عن طريق تمرير الجملة String إلى الأمر s-nail
وحدد مستخدم Linux المستلم للرسالة:
$ echo 'init' | s-nail -s 'init' -Snorecord sammy
سيكون الرد ربما كتالي:
Can't canonicalize "/home/sammy/Maildir"
سيظهره هذا الأمر بشكل طبيعي عند ارسال الرسالة أول مرة و يمكننا التحقق من إنشاء المجلد من خلال البحث عن مجلد Maildir/~
:
$ ls -R ~/Maildir
ستشاهد ما يحتوي عليه المجلد وقد تم إنشاء ملف جديد فيه رسالة جديدة في المجلد Maildir/new/~
:
/home/sammy/Maildir/: cur new tmp /home/sammy/Maildir/cur: /home/sammy/Maildir/new: 1463177269.Vfd01I40e4dM691221.mail.example.com /home/sammy/Maildir/tmp:
يبدو أن البريد تم تسليمه.
إدارة البريد مع العميل
استخدم العميل من أجل التحقق من بريدك:
$ s-nail
ستجد الرسالة التالية تنتظرك:
s-nail version v14.8.6. Type ? for help. "/home/sammy/Maildir": 1 message 1 new >N 1 sammy@example.com Wed Dec 31 19:00 14/369 init
اضغط على زر Enter لعرض رسالتك التالية:
[-- Message 1 -- 14 lines, 369 bytes --]: From sammy@example.com Wed Dec 31 19:00:00 1969 Date: Fri, 13 May 2016 18:07:49 -0400 To: sammy@example.com Subject: init Message-Id: \<20160513220749.A278F228D9@mail.example.com\> From: sammy@example.com init
يمكنك العودة إلى قائمة الرسائل الخاصة بك بكتابة الرمز h ثم Enter:
? h
نظرًا لأن هذه الرسالة ليست مفيدة للغاية يمكننا حذفها باستخدام الرمز d ثم Enter :
? d
للعودة إلى شاشة الأوامر استخدم الرمز q ثم ENTER:
? q
إرسال البريد مع العميل
يمكنك اختيار إرسال رسالة عبر كتابة الرسالة بمحرر النصوص :
$ nano ~/test_message
داخل الملف
~/test_message اكتب النص الذي تود ارساله بالبريد:
Hello, This is a test. Please confirm receipt!
بإمكاننا باستخدام الأمر cat
توجيه الرسالة باستخدام s-nail
سيؤدي ذلك إلى إرسال الرسالة كمستخدم Linux الافتراضي، يمكنك ضبط الحقل "From" باستخدام الراية r-
إذا كنت تريد تعديل هذه القيمة إلى شيء آخر:
$ cat ~/test_message | s-nail -s 'Test email subject line' -r from_field_account user@email.com
الخيارات بالأمر السابق تعني:
-
s-
: موضوع البريد الإلكتروني -
r-
: حقل اختياري لتغيير الحقل "From" في البريد الإلكتروني بشكل افتراضي هو مستخدم Linux الذي قمت بتسجيل الدخول به سيتم استخدامه لملء هذا الحقل، يسمح لك الخيارr-
باعادة تعيينه. - user@email.com: الحساب المرسل اليه البريد الإلكتروني قم بتغييره ليكون حسابًا صحيحًا لك حق الوصول إليه.
يمكنك عرض رسائلك المرسلة داخل عميل s-nail الخاص بك اعد تشغيل العميل التفاعلي مرة أخرى بكتابة الأمر التالي:
$ s-nail
بإمكانك عرض الرسائل المرسلة عبر الأمر التالي :
? file +sent
يمكنك إدارة البريد المرسل باستخدام نفس الأوامر التي تستخدمها للبريد الوارد.
الخلاصة
يجب أن يكون لديك الآن القدرة على إعداد Postfix على خادم أوبنتو 18.04 إن إدارة خوادم البريد الإلكتروني مهمة صعبة على مسؤولين النظام ولكن مع هذا الإعداد يجب أن يكون لديك وظيفة البريد الإلكتروني MTA الأساسية لتبدأ.
ترجمة -وبتصرف- للمقال How To Install and Configure Postfix on Ubuntu 18.04 لصاحبيه Justin Ellingwood و Hanif Jetha
تم التعديل في بواسطة جميل بيلوني
أفضل التعليقات
لا توجد أية تعليقات بعد
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.