كيفية تثبيت وتكوين Postfix على Ubuntu 22.04

مقدمة

بوستفيكس هو برنامج معروف مفتوح المصدر للوكيل لنقل البريد (MTA) الذي يمكن استخدامه لتوجيه وتسليم البريد الإلكتروني على نظام Linux. يُقدر أن حوالي 25% من خوادم البريد العامة على الإنترنت تعمل بنظام Postfix.

في هذا الدليل، ستتعلم كيفية تثبيت وتكوين بوستفيكس على خادم Ubuntu 22.04. ثم، ستقوم باختبار قدرة بوستفيكس على توجيه البريد بشكل صحيح من خلال تثبيت s-nail، وهو وكيل مستخدم للبريد (MUA)، المعروف أيضًا باسم عميل البريد الإلكتروني.

يرجى ملاحظة أن هدف هذا البرنامج التعليمي هو مساعدتك في تشغيل بوستفيكس بسرعة مع بعض وظائف البريد الإلكتروني الأساسية فقط. لن يكون لديك خادم بريد إلكتروني متكامل بالكامل بنهاية هذا الدليل، ولكن ستكون لديك بعض المكونات الأساسية لمثل هذا الإعداد لمساعدتك في البدء.

المتطلبات المسبقة

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

إذا كنت متأكدًا من رغبتك في اتباع هذا الدليل لتثبيت وتكوين Postfix، فيجب عليك أولاً أن تمتلك ما يلي:

  • A server running Ubuntu 22.04 to function as your Postfix mail server. This server should have a non-root user with sudo privileges and a firewall configured with UFW. You can follow our Ubuntu 22.04 initial server setup guide to set this up.
  • A Fully Qualified Domain Name pointed at your Ubuntu 22.04 server. You can find help on setting up your domain name with DigitalOcean by following our Domains and DNS Networking documentation. Be aware that if you plan on accessing mail from an external location, you will need to make sure you have an MX record pointing to your mail server as well.

يرجى ملاحظة أن هذا البرنامج التعليمي يفترض أنك تقوم بتكوين مضيف يحمل FQDN لـ mail.example.com. في كل مرة تكون فيها ضروريًا، تأكد من تغيير example.com أو mail.example.com ليعكس FQDN الخاص بك.

الخطوة 1 — تثبيت Postfix

Postfix مدرج في مستودعات Ubuntu الافتراضية، لذا يمكنك تثبيته باستخدام APT.

للبدء، قم بتحديث ذاكرة التخزين المؤقتة المحلية لحزمة apt:

  1. sudo apt update

ثم قم بتثبيت حزمة postfix باستخدام الأمر التالي. يرجى ملاحظة أننا هنا نمرر المتغير البيئي DEBIAN_PRIORITY=low إلى هذا الأمر التثبيت. سيؤدي هذا إلى تشغيل عملية التثبيت لتطلب منك تكوين بعض الخيارات الإضافية:

  1. sudo DEBIAN_PRIORITY=low apt install postfix

ستفتح عملية التثبيت هذه سلسلة من الاستفسارات التفاعلية. لأغراض هذا البرنامج التعليمي، استخدم المعلومات التالية لملء الاستفسارات الخاصة بك:

  • نوع عام لتكوين البريد؟: لهذا، اختر موقع الإنترنت لأن هذا يتناسب مع احتياجات البنية التحتية لدينا.
  • اسم البريد للنظام: هذا هو النطاق الأساسي المستخدم لبناء عنوان بريد إلكتروني صالح عندما يتم تقديم جزء الحساب فقط من العنوان. على سبيل المثال، لنفترض أن اسم المضيف لخادمك هو mail.example.com. من المحتمل أن ترغب في ضبط اسم البريد للنظام على example.com بحيث يستخدم Postfix العنوان user1@example.com عندما يتم توفير اسم المستخدم user1.
  • المستلم لبريد الجذر والمدير: هذا هو حساب Linux الذي سيتم إعادة توجيه البريد الموجه إليه root@ و postmaster@. استخدم حسابك الرئيسي لهذا. في هذه الحالة المثالية، sammy.
  • وجهات أخرى لقبول البريد من أجل: يحدد هذا الوجهات البريدية التي ستقبلها هذه النسخة من Postfix. إذا كنت بحاجة لإضافة أي نطاقات أخرى ستتولى هذا الخادم استلامها، أضفها هنا. في غير ذلك، سيكون الافتراضي كافياً.
  • فرض التحديثات المتزامنة على طابور البريد؟: نظرًا لأنك من المحتمل أن تستخدم نظام ملفات مسجل، قبل لا هنا.
  • الشبكات المحلية: هذه قائمة بالشبكات التي يتم تكوين خادم البريد الخاص بك لإعادة توجيه الرسائل إليها. سيعمل الافتراضي بشكل جيد لمعظم السيناريوهات. إذا اخترت تعديله، فتأكد من أن تكون مقيدًا للغاية فيما يتعلق بنطاق الشبكة.
  • حدود حجم صندوق البريد: يمكن استخدام هذا لتحديد حجم الرسائل. تعيينه إلى 0 يعطل أي قيود حجم.
  • حرف التمديد لعنوان محلي: هذا هو الحرف الذي يمكن استخدامه لفصل الجزء العادي من العنوان عن التمديد (المستخدم لإنشاء الاسماء البديلة الديناميكية). الافتراضي، + سيعمل لهذا البرنامج التعليمي.
  • البروتوكولات الإنترنت للاستخدام: اختر ما إذا كنت تريد تقييد إصدار IP الذي يدعمه بريد بوستفكس. لأغراض هذا البرنامج التعليمي، اختر all.

لتكون واضحًا، هذه هي الإعدادات المستخدمة في هذا الدليل:

  • النوع العام لتكوين البريد؟: موقع الإنترنت
  • اسم البريد النظامي: example.com (ليس mail.example.com)
  • المستلم الجذري والرئيسي للبريد: اسم المستخدم الخاص بحساب Linux الأساسي الخاص بك (sammy في أمثلتنا)
  • وجهات أخرى لقبول البريد لها: $myhostname, example.com, mail.example.com, localhost.example.com, localhost
  • فرض تحديثات متزامنة على طابور البريد؟: لا
  • الشبكات المحلية: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
  • حدود حجم صندوق البريد: 0
  • حرف التمديد لعنوان محلي: +
  • البروتوكولات الإنترنت للاستخدام: all

ملاحظة: إذا كنت بحاجة إلى العودة لتغيير هذه الإعدادات مرة أخرى، يمكنك القيام بذلك عن طريق كتابة:

  1. sudo dpkg-reconfigure postfix

سيتم ملء الحوافز مسبقًا باستجاباتك السابقة.

عندما تُطلب إعادة تشغيل الخدمات، قبل الافتراضيات واختر موافق.

عندما ينتهي عملية التثبيت، أنت الآن جاهز لإجراء بعض التحديثات على تكوين بريدك الإلكتروني (بوستفيكس).

الخطوة 2 — تغيير تكوين بوستفيكس

يمكنك الآن ضبط بعض الإعدادات التي لم يطلب منك عملية تثبيت الحزمة تعديلها. يتم تعريف العديد من إعدادات تكوين بوستفيكس في ملف /etc/postfix/main.cf. بدلاً من تحرير هذا الملف مباشرة، يمكنك استخدام أمر postconf لبحث أو تعيين الإعدادات التكوينية.

للبدء، قم بتعيين موقع صندوق بريد مستخدم Ubuntu غير الجذر. في هذا الدليل، سنستخدم تنسيق Maildir، الذي يفصل الرسائل إلى ملفات فردية يتم نقلها بين الدلائل استنادًا إلى إجراءات المستخدم. الخيار البديل الذي لم يتم تغطيته في هذا الدليل هو تنسيق mbox، الذي يخزن جميع الرسائل داخل ملف واحد.

قم بتعيين المتغير home_mailbox إلى Maildir/. في وقت لاحق، ستقوم بإنشاء هيكل مجلد تحت هذا الاسم داخل دليل المستخدم الخاص بك. قم بتكوين home_mailbox عن طريق كتابة:

  1. sudo postconf -e 'home_mailbox= Maildir/'

بعد ذلك، قم بتحديد موقع جدول virtual_alias_maps الذي يقوم بتعيين حسابات البريد الإلكتروني التعسفية إلى حسابات نظام Linux. قم بتشغيل الأمر التالي، الذي يرتبط بموقع الجدول بملف قاعدة بيانات تجزئة يسمى /etc/postfix/virtual:

  1. sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'

الآن بعد أن قمت بتحديد موقع ملف الخرائط الافتراضية في ملف main.cf الخاص بك، يمكنك إنشاء الملف نفسه وبدء تعيين حسابات البريد الإلكتروني إلى حسابات المستخدمين على نظام Linux الخاص بك. قم بإنشاء الملف باستخدام محرر النص المفضل لديك؛ في هذا المثال، سنستخدم nano:

  1. sudo nano /etc/postfix/virtual

قم بتحديد أي عناوين ترغب في قبول البريد الإلكتروني لها، تليها مسافة فارغة والمستخدم في Linux الذي ترغب في توصيل تلك البريد إليه.

على سبيل المثال، إذا كنت ترغب في قبول البريد الإلكتروني على contact@example.com و admin@example.com وتود توصيل تلك البريد إلى المستخدم sammy في Linux، يمكنك تعيين ملفك بهذه الطريقة:

/etc/postfix/virtual
contact@example.com sammy
admin@example.com sammy

بعد أن قمت بتعيين جميع العناوين إلى حسابات الخادم المناسبة، احفظ وأغلق الملف. إذا استخدمت nano، فافعل ذلك عن طريق الضغط على CTRL + X، ثم Y، ثم ENTER.

ضع التطبيق عن طريق الكتابة:

  1. sudo postmap /etc/postfix/virtual

أعد تشغيل عملية Postfix للتأكد من تطبيق جميع التغييرات:

  1. sudo systemctl restart postfix

بناءً على افتراض أنك قمت بمتابعة دليل الإعداد الأولي للخادم، فستكون قد قمت بتكوين جدار ناري باستخدام UFW. سيقوم هذا الجدار الناري بحظر الاتصالات الخارجية إلى الخدمات على الخادم الخاص بك بشكل افتراضي ما لم يتم السماح صراحة بتلك الاتصالات، لذا ستحتاج إلى إضافة قاعدة جدار ناري للسماح باستثناء لبرنامج البريد الخاص بك.

يمكنك السماح بالاتصالات بالخدمة عن طريق كتابة:

  1. sudo ufw allow Postfix

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

الخطوة 3 — تثبيت عميل البريد وتهيئة بنية Maildir

من أجل التفاعل مع البريد الذي يتم تسليمه، ستقوم هذه الخطوة بإرشادك خلال عملية تثبيت حزمة s-nail. هذا هو نوع مميز من عميل BSD xmail الذي يمكنه التعامل بشكل صحيح مع تنسيق Maildir.

قبل تثبيت العميل، سيكون من الحكمة التأكد من تعيين متغير البيئة MAIL بشكل صحيح. سيراقب s-nail هذا المتغير لمعرفة مكان العثور على البريد لمستخدمك.

لضمان أن المتغير MAIL مُعين بغض النظر عن كيفية الوصول إلى حسابك — سواءً من خلال ssh، su، su -، أو sudo، على سبيل المثال — ستحتاج إلى ضبط المتغير في ملف /etc/bash.bashrc وإضافته إلى ملف ضمن /etc/profile.d للتأكد من تعيينه لجميع المستخدمين بشكل افتراضي.

لإضافة المتغير إلى هذه الملفات، اكتب:

  1. echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh

لقراءة المتغير في جلسة العمل الحالية، قم بمصدرة من ملف /etc/profile.d/mail.sh:

  1. source /etc/profile.d/mail.sh

مع الانتهاء من ذلك، قم بتثبيت عميل البريد الإلكتروني s-nail باستخدام APT:

  1. sudo apt install s-nail

قبل تشغيل العميل، هناك بعض الإعدادات التي يجب ضبطها. افتح ملف /etc/s-nail.rc في محرر النص:

  1. sudo nano /etc/s-nail.rc

في نهاية الملف، أضف الخيارات التالية:

/etc/s-nail.rc
. . .
set emptystart
set folder=Maildir
set record=+sent

هذا ما تقوم به هذه الأسطر:

  • set emptystart: يسمح للعميل بالفتح حتى مع صندوق بريد فارغ
  • set folder=Maildir: يعين دليل Maildir إلى المتغير الداخلي folder
  • set record=+sent: ينشئ ملف sent mbox لتخزين البريد المرسل ضمن أي دليل يتم تعيينه كمتغير folder، في هذه الحالة Maildir

احفظ وأغلق الملف عند الانتهاء. أنت الآن جاهز لبدء هيكل Maildir على نظامك.

A quick way to create the Maildir structure within your home directory is to send yourself an email with the s-nail command. Because the sent file will only be available once the Maildir is created, you should disable writing to it for this initial email. Do this by passing the -Snorecord option.

أرسل البريد الإلكتروني عن طريق توجيه سلسلة إلى أمر s-nail. قم بتعديل الأمر لتحديد مستخدم Linux الخاص بك كمستلم:

  1. echo 'init' | s-nail -s 'init' -Snorecord sammy

ملاحظة: قد تحصل على الاستجابة التالية:

Output
Can't canonicalize "/home/sammy/Maildir"

هذا أمر طبيعي وقد يظهر فقط عند إرسال هذه الرسالة الأولى.

يمكنك التحقق للتأكد من أن المجلد قد تم إنشاؤه عن طريق البحث عن مجلد ~/Maildir:

  1. ls -R ~/Maildir

سترى أن تم إنشاء هيكل المجلد وأن ملف رسالة جديد موجود في المجلد ~/Maildir/new:

Output
/home/sammy/Maildir/: cur new tmp /home/sammy/Maildir/cur: /home/sammy/Maildir/new: 1650294586.Vfc01I7e11dM993645.mail.example.com /home/sammy/Maildir/tmp:

الآن بعد أن تم إنشاء هيكل المجلد، أنت جاهز الآن لاختبار عميل s-nail عن طريق عرض الرسالة init التي أرسلتها وإرسال رسالة إلى عنوان بريد إلكتروني خارجي.

الخطوة 4 — اختبار العميل

لفتح العميل، قم بتشغيل الأمر s-nail:

  1. s-nail

في الوحدة النمطية الخاصة بك، سترى صندوق بريد بسيط مع رسالة init في انتظار العرض:

Output
s-nail version v14.9.15. Type `?' for help "/home/sammy/Maildir": 1 message 1 new >N 1 [email protected] 2022-04-18 15:09 14/452 init

اضغط ENTER لعرض الرسالة:

Output
[-- Message 1 -- 14 lines, 452 bytes --]: Date: Mon, 18 Apr 2022 15:09:46 +0000 To: [email protected] Subject: init Message-Id: <20220418150946.EE6897E11A@@mail.example.com> From: [email protected] init

يمكنك العودة إلى قائمة الرسائل عن طريق كتابة h، ثم ENTER:

  1. h
Output
>R 1 [email protected] 2022-04-18 15:09 14/452 init

لاحظ أن الرسالة الآن لديها حالة R، مما يشير إلى أنه تم قراءتها.

نظرًا لأن هذه الرسالة ليست مفيدة جدًا، يمكنك حذفها عن طريق الضغط على d، ثم ENTER:

  1. d

للعودة إلى الطرفية، اكتب q ثم ENTER:

  1. q

كاختبار نهائي، تحقق مما إذا كان s-nail قادرًا على إرسال رسائل البريد الإلكتروني بشكل صحيح. يمكنك القيام بذلك عن طريق توجيه محتوى ملف نصي إلى عملية s-nail، مثلما فعلت برسالة init التي أرسلتها في الخطوة السابقة.

ابدأ بكتابة رسالة اختبار في محرر نصوص:

  1. nano ~/test_message

ضمنها، أدخل بعض النص الذي ترغب في إرساله:

~/test_message
Hello,

This is a test.  Please confirm receipt!

احفظ الملف وأغلقه بعد كتابة رسالتك.

ثم، استخدم أمر cat لتوجيه الرسالة إلى عملية s-nail. يمكنك القيام بذلك باستخدام المثال التالي، الذي يستخدم هذه الخيارات:

  • -s: يحدد سطر الموضوع لرسالة البريد الإلكتروني
  • -r: تغيير اختياري لحقل “من:” في البريد الإلكتروني. بشكل افتراضي، سيتم استخدام المستخدم في نظام Linux الذي تم تسجيل الدخول به لملء هذا الحقل. الخيار -r يتيح لك تجاوز ذلك بعنوان صالح، مثل واحدة من تلك التي حددتها في الملف /etc/postfix/virtual. على سبيل المثال، يستخدم الأمر التالي [email protected]

كما يجب عليك التأكد من تغيير user@email.com إلى عنوان بريد إلكتروني صالح تمتلك الوصول إليه:

  1. cat ~/test_message | s-nail -s 'Test email subject line' -r [email protected] user@email.com

ثم، انتقل إلى صندوق الوارد لعنوان البريد الإلكتروني الذي أرسلت إليه الرسالة. سترى رسالتك في انتظارك هناك تقريبًا فورًا.

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

يمكنك عرض الرسائل التي تم إرسالها ضمن عميل s-nail الخاص بك. ابدأ العميل التفاعلي مرة أخرى:

  1. s-nail

من عميل البريد الإلكتروني، اعرض رسائلك المرسلة عن طريق كتابة:

  1. file +sent

سترى النتائج مثل هذا:

Output
+[/home/sammy/Maildir/]sent: 1 message 1 new ▸N 1 To [email protected] 2022-04-18 15:12 10/211 Test email subject line

يمكنك إدارة البريد المرسل باستخدام نفس الأوامر التي تستخدمها للبريد الوارد.

الختام

لديك الآن Postfix مكون على خادم Ubuntu 22.04 الخاص بك. إدارة خوادم البريد الإلكتروني يمكن أن تكون مهمة صعبة لمسؤولي النظام الجدد، ولكن مع هذا التكوين، يجب أن تكون لديك الوظائف الكافية للبريد الإلكتروني MTA للبدء.

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postfix-on-ubuntu-22-04