سنرى في هذا الدرس كيفية تثبيت وإعداد Mailpile، الذي هو عميل ويب سريع وآمن وجميل للبريد للإلكتروني، على نظام أوبنتو Ubuntu 14.04.
عميل ويب للبريد الإلكتروني مثل Mailpile هو طريقةٌ ممتازةٌ للتأكد أنك تستطيع الوصول إلى بريدك من أي مكان دون الفوضى التي تحدث عند ضبط عميل بريد قياسي؛ Mailpile هو مجرد عميل بريد، مما يعني أنه يدير حسابات البريد الموجودة مسبقًا فقط.
ستحصل، في نهاية هذا الدرس، على خدمة سحابية تعمل عملًا تامًا تشغِّل Mailpile مع خادم Nginx كخادم وسيط عكسي (reverse proxy).
ابقِ في ذهنك خلال قراءتك لهذا الدرس أن Mailpile ما يزال تجريبيًّا (في مرحلة beta)، الذي يعني أنك ربما تواجه عللًا وصعوباتٍ أخرى في الطريق... لا يحتفظ Mailpile بمعلوماتك بين الجلسات (أي أن عليك إعادة إدخال معلومات حسابك في كل مرة تعيد فيها تشغيل Mailpile).
ولا يحتوي أيضًا على طريقة سهلة لتشغيله كخدمة (service)؛ افتراضيًا، يمكنه أن يعمل فقط كسكربت تفاعلي في جلسة SSH؛ لكننا ضمّنا سكربت Upstart يستخدم Screen لتشغيله في الخلفية، لذلك يمكنك ترك عميل الويب للبريد يعمل إلى أن تشاء إغلاقه؛ لكن ذلك ليس طريقةً مستحسنةً للتشغيل في بيئة إنتاجية.
المتطلبات المسبقة
سنحتاج إلى بضعة أشياء قبل البدء:
- خادوم (Droplet) يعمل بنظام أوبنتو 14.04، من المستحسن أن يكون لديك 512 ميغابايت من ذاكرة الوصول العشوائي على الأقل لكي يستطيع Mailpile إدارة عدِّة صناديق بريد إلكتروني؛ إذا كنت تتوقع استخدامه من أكثر من مستخدمَين، فربما تريد زيادة الحجم.
- مستخدم يملك امتيازات الجذر (root)، راجع هذا الدرس لتعليمات حول إعداد مستخدم يملك امتيازات الجذر عبر sudo في أوبنتو 14.04
- شهادة SSL لإبقاء بريدك آمنًا؛ يمكنك شراء واحدة من Namecheap أو سلطة شهادات (certificate authority) أخرى؛ إذا لم تكن تريد إنفاق المال، فيمكنك إنشاء شهادتك لاستخدامها مع Nginx أو يمكنك الحصول على واحدة من StartSSL.
- اسم نطاق.
- إذا كنت تملك نطاقًا، فأنشِئ سجل A للإشارة إلى خادومك (على سبيل المثال mailpile.example.com).
الحظ أماكن وجود شهادة SSL الخاصة بك والمفاتيح؛ إذا اتبعت الدرس التعليمي لإنشاء شهادات لاستخدامها مع Nginx، فسيكونوا موجودين في:
/etc/nginx/ssl/nginx.crt و /etc/nginx/ssl/nginx.key
هذا كل ما في الأمر، إذا كان لديك كل شيء جاهزًا، فأكمل إلى الخطوة الأولى.
الخطوة الأولى – تنزيل Mailpile
سنُحضِّر في هذا القسم بيئة العمل لتثبيت Mailpile.
علينا أولًا تسجيل الدخول إلى خادومنا، تأكد أنك سجلت دخولك بمستخدم لديه امتيازات الجذر عبر sudo.
علينا بادئ الأمر تثبيت Git، سنستخدم Git لنسخ كود Mailpile المصدري من GitHub.
حدِّث فهرس حزم مستودعات أوبنتو:
sudo apt-get update
ثبِّت Git:
sudo apt-get install git
الآن بعد تثبيت Git، لنغيّر مجلد العمل الحالي إلى مكانٍ آخر لكي نجري أعمالنا فيه؛ في هذه الحالة، سنستخدم المجلد /var:
cd /var
انسخ (clone) كود Mailpile:
sudo git clone https://github.com/mailpile/Mailpile.git
ستحتاج إلى استخدام sudo للسماح للأمر Git بإنشاء مجلد داخل /var، الذي هو مجلد نظام.
كاد أن يصبح نظامك جاهزًا لتشغيل Mailpile، انتقل الآن إلى الخطوة الثانية لاستعرض المزيد من المتطلبات.
الخطوة الثانية – ضبط متطلبات Mailpile
سنثبت ونضبط في هذا القسم متطلبات Mailpile.
أولًا، لنثبت pip؛ إن pip هو مدير حزم لبايثون:
sudo apt-get -y install python-pip
سيسمح pip لنا بتثبيت متطلبات Mailpile بطريقة أسهل؛ سترى كيف يتم ذلك خلال دقيقة، لكن علينا أولًا تثبيت المزيد من الأشياء.
علينا الآن تثبيت lxml؛ إن lxml هو من متطلبات Mailpile الذي يُثبَّت عادةً بواسطة pip، لكننا وجدنا أنه يسبب فشل التثبيت لأسبابٍ غير معروفة؛ وبسبب ذلك، سنُثبِّته عبر apt-get:
sudo apt-get install python-lxml
يجب تثبيت بعض الحزم الأخرى يدويًا أيضًا، بما في ذلك GnuPG و OpenSSL؛ ستجعل هذه الحزم البيئة أكثر أمانًا لبريدنا. يمكن أن تكون بعض الحزم مثبتةً افتراضيًا، لكننا سنتأكد من ذلك على أيّة حال تحسبًا لعدم وجودها:
sudo apt-get install gnupg openssl libssl-dev
بدِّل الآن مجل العمل الحالي إلى مجلد Mailpile:
cd /var/Mailpile
إننا جاهزون الآن لاستغلال إمكانيات pip لتثبيت بقية المتطلبات.
يحتوي Mailpile على ملف باسم requirements.txt، الذي هو قائمة بمتطلباته؛ يملك pip القدرة على قراءة تلك القائمة وتثبيت كل واحدٍ فيها تلقائيًّا؛ لنفعل ذلك إذًا:
sudo pip install -r /var/Mailpile/requirements.txt
لقد إنتهينا، لقد ثبتنا جميع المتطلبات، وأصبح Mailpile جاهزًا للاستخدام، لكن قبل أن نشغِّله، علينا إجراء بعض الخطوات الإضافية لتزيد من الأمان.
الخطوة الثالثة – ضبط وسيط عكسي عبر Nginx
سنضبط Nginx في هذا القسم كوسيط عكسي لخدمة Mailpile؛ وهذا ما سيجعل Mailpile أكثر أمانًا، سامحًا لنا باستخدام شهادة SSL، وبتسهيل الوصول إلى عميل الويب للبريد.
باستخدام Nginx –بدلًا من الوصول إلى Mailpile بزيارة http://example.com:33411– فستستطيع استخدام https://mailpile.example.com، لنبدأ!
علينا أولًا تثبيت Nginx لأننا سنستخدمه لإنجاز معظم الأعمال؛ لذلك لنحصل على Nginx قبل أي شي:
sudo apt-get install nginx
الآن، وبعد أن ثبّتنا Nginx، يمكننا ضبط خادم الوسيط العكسي؛ لنعدل ضبط Nginx لتوجيه النطاق الفرعي إلى Mailpile.
ربما تريد أن تحذف ملف ضبط Nginx الافتراضي، لأنه مليئ بأشياءٍ لا نحتاجها؛ لكن أولًا، لنُنشِئ نسخةً احتياطيةً؛ أنشِئ أولًا المجلد:
sudo mkdir /home/backup
ثم خذ نسخةً احتياطيةً:
sudo cp -b /etc/nginx/sites-enabled/default /home/backup
يمكنك الآن حذف الملف بحرية دون عواقب وخيمة:
sudo rm /etc/nginx/sites-available/default
لنتأكد من أن الملف قد حُذِف:
ls /etc/nginx/sites-available/
إذا ثبَّتتَ Nginx الآن، فيجب ألّا يعيد الأمر السابق أيّة مخرجات.
لننشِئ الآن ملفًا جديدًا:
sudo nano /etc/nginx/sites-available/default
حان الآن الوقت لضبط الوسيط العكسي؛ لنبدأ بالقسم الأول. أضف ما يلي إلى بداية الملف (سنشرح ماذا يفعل بعد ثوانٍ):
/etc/nginx/sites-available/default server { listen 80; return 301 https://$host$request_uri; }
ما سبق يخبر Nginx أن يعيد توجيه الطلبيات التي تأتي إليه إلى HTTPS؛ لكنه في الواقع يعيد التوجيه إلى شيءٍ غير موجودٍ بعد؛ لننشِئ ذلك:
/etc/nginx/sites-available/default server { listen 443; server_name mailpile.example.com; ssl_certificate /etc/nginx/ssl/nginx.crt; ssl_certificate_key /etc/nginx/ssl/nginx.key; ssl on; ssl_session_cache builtin:1000 shared:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; ssl_prefer_server_ciphers on; access_log /var/log/nginx/mailpile.access.log;
تأكد من أن الشهادة والمفتاح موجودان في /etc/nginx/ssl/nginx.crt و /etc/nginx/ssl/nginx.key؛ عدا ذلك، فحَدِّث المسارات بعد ssl_certificate و ssl_certificate_key لمطابقة مسارات الشهادة والمفتاح.
ما أدخلناه في الأعلى يخبر Nginx أن يستمع إلى المنفذ 443 (المنفذ المستعمل للوصول إلى مواقع الويب عبر SSL، على النقيض من المنفذ 80)، ويستخدم شهادة SSL الخاصة بنا، ويشغِّل SSL. يجب علينا الآن أن نخدِّم شيئًا ما لعنوان HTTPS URL الذي أعدنا التوجيه إليه وفعّلنا SSL عليه؛ وهذا ما سنفعله في الخطوة الآتية.
أضف ما يلي إلى الكتلتين النصيتين السابقتين:
/etc/nginx/sites-available/default location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # Fix the "It appears that your reverse proxy set up is broken" error. proxy_pass http://localhost:33411; proxy_read_timeout 90; proxy_redirect http://localhost:33411 https://webmail.example.com; } }
بعد أن تنتهي من ذلك، يجب أن يبدو ملف الضبط كما يلي:
/etc/nginx/sites-available/default server { listen 80; return 301 https://$host$request_uri; } server { listen 443; server_name mailpile.example.com; ssl_certificate /etc/nginx/ssl/nginx.crt; ssl_certificate_key /etc/nginx/ssl/nginx.key; ssl on; ssl_session_cache builtin:1000 shared:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; ssl_prefer_server_ciphers on; access_log /var/log/nginx/mailpile.access.log; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # Fix the "It appears that your reverse proxy set up is broken" error. proxy_pass http://localhost:33411; proxy_read_timeout 90; proxy_redirect http://localhost:33411 https://webmail.example.com; } }
إذا لم تستبدل الموقع الافتراضي، لكنك أنشَأت «server block file» باسمٍ مختلف، فيمكنك تفعيله كما يلي:
sudo ln -s /etc/nginx/sites-available/mailpile.example.com /etc/nginx/sites-enabled/
يجب أن يكون الموقع الافتراضي مفعلًا افتراضيًّا.
الآن أعد تشغيل Nginx لإعادة تحميل الضبط:
sudo service nginx restart
هذا كل ما في الأمر؛ يمكن الوصول إلى Mailpile الآن عبر https://mailpile.example.com؛ ربما عليك قبول تحذير SSL إذا استخدمتَ شهادةً موقعةً ذاتيًا (self-singed certificate).
ولو حاولت أيضًا الوصول عبر http://mailpile.example.com فستحوَّل تلقائيًّا إلى نسخة SSL من الموقع.
لم نشغِّل Mailpile بعد، لذلك إذا زرت هذه العناوين الآن، فستشاهد الخطأ «502 Bad Gateway»، أكثر سبب شائع لهذا الخطأ هو أن تطبيق Mailpile لا يعمل.
انتقل الآن إلى الخطوة الرابعة لتشغيل Mailpile.
الخطوة الرابعة – ضبط وتشغيل Mailpile
سنشغل في هذا القسم Mailpile، ونضبطه ليعمل مع الخادم الوسيط.
لنتأكد أننا في المجلد الصحيح:
cd /var/Mailpile
لتشغيل Mailpile، أدخِل الأمر:
./mp
تستطيع الآن البدء في استكشاف Mailpile عبر الواجهة السطرية أو واجهة الويب.
تحذير: لن يحفظ Mailpile الضبط الذي أجريته عندما يتوقف عن العمل؛ لذلك قبل أن تقضي وقتًا في ضبطه؛ ربما تريد أن تنجز الخطوة الإضافية لتشغيله كخدمة تعمل في الخلفية.
أصبح Mailpile يعمل الآن، ويمكنك الوصول إليه عبر https://mailpile.example.com، وحتى يمكنه إعادة التوجيه إلى HTTPS مُستخدِمًا شهادة SSL الخاصة بك. تهانينا!
يمكنك استخدام Ctrl+C ثم كتابة quit للخروج من Mailpile.
خطوة اختيارية – اجعل Mailpile يعمل كخدمة مع Upstart
للتأكد من أن Mailpile يعمل دائمًا وجاهزٌ للتعامل مع بريدك؛ يمكنك تحويل Mailpile إلى خدمة باستخدام Upstart.
لمّا كان Mailpile ما يزال تجريبيًّا، فإنه لم يصبح على شكل خدمة بعد؛ حيث يتطلب وجود سطر أوامر تفاعلي، لذلك لا تستطيع أن تشغل سكربت بايثون مباشرةً. سكربت Upstart الآتي هو طريقة ملتوية لتشغيل تطبيق بايثون كخدمة عبر Screen:
sudo nano /etc/init/mailpile.conf /etc/init/mailpile.conf description "Mailpile Webmail Client" author "Sharon Campbell" start on filesystem or runlevel [2345] stop on shutdown script echo $$ > /var/run/mailpile.pid exec /usr/bin/screen -dmS mailpile_init /var/Mailpile/mp end script pre-start script echo "[`date`] Mailpile Starting" >> /var/log/mailpile.log end script pre-stop script rm /var/run/mailpile.pid echo "[`date`] Mailpile Stopping" >> /var/log/mailpile.log end script
سيبدأ السكربت السابق Mailpile ويبقى يعمل ما دامت جلسة Screen تعمل؛ لا يمكن للسكربت أن يوقِف جلسة Screen إيقافًا سَلِسًا، لذلك عليك إيقاف جلسة Screen يدويًا إذا أردت إيقاف تشغيل Mailpile.
مستخدمًا هذا السكربت، يمكنك تشغيل Mailpile عبر:
sudo start mailpile
مما يؤدي إلى إنشاء جلسة Screen باسم 12345.mailpile_init مملوكة من المستخدم الجذر (root).
لكن لن تعمل أوامر Upstart الأخرى؛ عليك إنهاء جلسة Screen يدويًا، ولو انهارت الخدمة أو توقفت، فعليك أن تعيد تشغيلها من جديد وتضبط جميع خصائصها.
الخطوة الخامسة – التعامل مع Mailpile
يوضح هذا القسم كيفية استخدام Mailpile من واجهة الويب، عبر https://mailpile.example.com.
هذه هي الشاشة التي ستشاهدها عندما تشغِّل Mailpile لأول مرة.
- اختر اللغة من القائمة المنسدلة.
- اضغط على زر «Begin».
- أنشِئ كلمة مرور جديدة، وأدخلها مرتين.
- اضغط على زر «Start using Mailpile».
- في شاشة الدخول: رجاءً أدخِل كلمة المرور التي أنشأتها منذ قليل.
- أضف حسابًا عبر زر «+ Add Account».
من هنا، ستحتاج إلى إدخال بيانات حساب البريد الذي تملكه؛ عليك إدخال عنوان البريد الإلكتروني وكلمة المرور لذاك الحساب؛ ثم سيحاول Mailpile أن يتصل إلى حسابك بهذه المعلومات، الأمر الذي قد يستغرق بضع دقائق.
يمكنك إدخال بيانات «Sending Mail» و «Receiving Mail» يدويًا، إذا لم يتمكن Mailpile من تحديدها تلقائيًا.
تنويه: إن Gmail يحجب Mailpile من استخدام حسابك في Gmail؛ لذلك لن تستطيع إضافة حساب Gmail إلى Mailpile – ليس بسهولة على الأقل.
بعد أن تُسجِّل دخولك، فستظهر لك هذه الشاشة:
حاول إرسال واستقبال رسالة بريدية تجريبيّة إلى الحساب الذي أضفته إلى Mailpile من حساب بريد إلكتروني آخر؛ إذا نجح ذلك، فاعلم أن Mailpile يعمل مع حساب بريدك الإلكتروني بنجاح.
ميزات Mailpile أخرى
يوفِّر Mailpile أيضًا تشكيلةً واسعةً من خيارات التشفير:
الخلاصة
لكي تبدأ مشوارك مع Mailpile، فراجع الأسئلة الشائعة له.
للمزيد من خيارات الضبط، نفِّذ الأمر help من سطر أوامر Mailpile.
تهانينا، لقد حصلت على عميل ويب للبريد الإلكتروني الخاص بك، الذي يعمل على خادوم أوبنتو 14.04؛ ويعمل تمامًا مع SSL ويعيد التوجيه تلقائيًا إلى نسخة HTTPS من موقعك. يمكنك الآن ضبط حسابات بريدك الإلكتروني وإدارة جهات الاتصال، والبريد، والتصنيفات، والمزيد من واجهة Mailpile الجميلة. استمتع!
ترجمة -وبتصرّف- للمقال How To Install Mailpile on Ubuntu 14.04 لصاحبه Kellan.
أفضل التعليقات
لا توجد أية تعليقات بعد
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.