إذا كان لديك حساب Gmail فيمكنك تكوين MTA لترحيل (relay) البريد الصادر عبر Gmail.
يمنح هذا ميزة موثوقية Gmail والبنية التحتية القوية ويوفر لك وسيلة بسيطة لإرسال البريد الإلكتروني من سطر الأوامر.
سوف نستخدم هنا Postfix كـ MTA الخاص بنا.
Postfix هو وكيل نقل (transfer agent) بريد مجاني ومفتوح المصدر (open-source) ويتم صيانته بشكل نشط وآمن للغاية.
في كل خطوة سنغطي أنظمة التشغيل التالية:
Debian 9
Ubuntu 18.04 LTS
CentOS 7
OpenSUSE Leap 15.0
Arch Linux 2019.03.01
FreeBSD 12.0
سنقوم بتثبيت mailutils / mailx حتى نتمكن من إرسال بريد إلكتروني تجريبي. سنقوم بتثبيت SASL libraries إضافية.
تتطلب جميع الأوامر التي تبدأ بـ # صلاحيات الـ root.
تثبيت البرنامج المطلوب
الخطوات
Debian و Ubuntu:
apt-get update && apt-get install postfix mailutils
عندما يُطلب منك "General type of mail configuration" اختر Internet Site.
عندما يُطلب منك اسم البريد (Mail name) اختر اسم مضيف (hostname) لاستخدامه في رؤوس البريد (mail headers) كأساس رسائل البريد الإلكتروني الخاصة بك.
بغض النظر عما تدخله هنا سيظهر عنوان المرسل للمستلمين كعنوان Gmail الخاص بك.
قد يُطلب منك تعيين مستلم البريد الأساسي ومدير مكتب البريد (Root and postmaster mail recipient).
أدخل root أو أي مستخدم آخر يجب أن يتلقى إعلامات النظام الفرعي للبريد.
لأية مطالبات أخرى يمكنك اختيار القيم الافتراضية.
Fedora:
dnf update && dnf install postfix mailx
CentOS:
yum update && yum install postfix mailx cyrus-sasl cyrus-sasl-plain
OpenSUSE:
zypper update && zypper install postfix mailx cyrus-sasl
Arch Linux:
pacman -Sy postfix mailutils
FreeBSD:
قم بعملية Compile Postfix من مجموعة المنافذ لتضمين دعم SASL:
portsnap fetch extract update
cd /usr/ports/mail/postfix
make config
حدد دعم SASL . يمكن أن تظل جميع الاختيارات الأخرى كما هي. ثم:
make install clean
يمكن تثبيت Mailx من الحزمة الثنائية(binary):
pkg install mailx
إعداد Gmail Authentication
قم بإنشاء أو تعديل ملف كلمة المرور الذي سيستخدمه Postfix لتأسيس مصادقة مع Gmail.
استبدل اسم المستخدم باسم مستخدم Gmail وكلمة المرور بكلمة مرور Gmail.
إذا كنت تستخدم اسم نطاق تطبيقات Gmail مخصصًا فيمكنك استبدال gmail.com بنطاق تطبيقات Google.
سيوجد ملف كلمة المرور في مجلد إعدادات Postfix.
يمكن تسمية الملف كيفما شئت لكن اسم الملف الموصى به هو sasl_passwd.
الخطوات
Debian و Ubuntu و Fedora و CentOS و OpenSUSE و Arch Linux:
توجد ملفات إعداد Postfix في المجلد / etc / postfix.
قم بإنشاء أو تعديل ملف كلمة المرور:
nano /etc/postfix/sasl_passwd
أضف السطر:
[smtp.gmail.com]:587 username@gmail.com:password
أحفظ وأغلق الملف.
يتم تخزين كلمة مرور Gmail كنص عادي لذا لا يمكن الوصول إلى الملف إلا عن طريق الـ root:
chmod 600 /etc/postfix/sasl_passwd
FreeBSD:
توجد ملفات إعداد Postfix في المجلد / usr / local / etc / postfix.
قم بإنشاء أو تعديل ملف كلمة المرور:
nano /usr/local/etc/postfix/sasl_passwd
أضف السطر:
[smtp.gmail.com]:587 username@gmail.com:password
أحفظ وأغلق الملف.
اجعله متاحًا فقط عن طريق الـ root:
chmod 600 /usr/local/etc/postfix/sasl_passwd
إعدادات Postfix
هناك ستة parameters يجب إعدادها في بوستفيكس ملف إعدادات Postfix وهو main.cf وهي:
1- relayhost
يحدد مضيف الـ mail relay ورقم المنفذ.
سيتم وضع اسم المضيف بين قوسين لتحديد عدم الحاجة إلى بحث MX.
2- smtp_use_tls
، الذي يتيح (أو يعطل) transport layer security.
3- smtp_sasl_auth_enable
يتيح (أو يعطل) SASL authentication.
4- smtp_sasl_security_options
سيتم إعداده إلى فارغ (empty) لضمان عدم استخدام خيارات أمان غير متوافقة مع Gmail.
5- smtp_sasl_password_maps
يحدد ملف كلمة المرور المراد استخدامه.
6- smtp_tls_CAfile
يحدد قائمة certificate authorities لاستخدامها عند التحقق من هوية الخادم.
الخطوات
Debian و Ubuntu و Arch Linux:
قم بتعديل ملف إعدادات Postfix الرئيسي:
nano /etc/postfix/main.cf
قم بإضافة أو تعديل القيم التالية:
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
أحفظ وأغلق الملف.
Fedora, CentOS:
قم بتعديل ملف إعدادات Postfix الرئيسي:
nano /etc/postfix/main.cf
قم بإضافة أو تعديل القيم التالية:
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt
أحفظ وأغلق الملف.
OpenSUSE:
قم بتعديل ملف إعدادات Postfix الرئيسي:
nano /etc/postfix/main.cf
قم بإضافة أو تعديل القيم التالية:
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/ca-bundle.pem
أحفظ وأغلق الملف.
يتطلب OpenSUSE أيضًا تعديل master.cf لملف إعدادات Postfix.
افتحه للتعديل:
nano /etc/postfix/master.cf
حدد موقع السطر الذي يقرأ:
#tlsmgr unix - - n 1000? 1 tlsmg
قم بإلغاء التعليق لذلك يقرأ:
tlsmgr unix - - n 1000? 1 tlsmg
أحفظ وأغلق الملف.
FreeBSD:
قم بتعديل ملف إعدادات Postfix الرئيسي:
nano /usr/local/etc/postfix/main.cf
قم بإضافة أو تعديل القيم التالية:
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/usr/local/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/mail/certs/cacert.pem
أحفظ وأغلق الملف.
معالجة ملف كلمة المرور
استخدم postmap لترجمة وتجزئة محتويات sasl_passwd.
سيتم تخزين النتائج في مجلد إعدادات Postfix في الملف sasl_passwd.db.
الخطوات
Debian و Ubuntu و Fedora و CentOS و OpenSUSE و Arch Linux:
postmap /etc/postfix/sasl_passwd
FreeBSD:
postmap /usr/local/etc/postfix/sasl_passwd
إعادة تشغيل Postfix
أعد تشغيل خدمة Postfix مع تطبيق التغييرات التي أجريتها.
الخطوات
Debian و Ubuntu و Fedora و CentOS و OpenSUSE و Arch Linux:
systemctl restart postfix.service
FreeBSD:
لبدء خدمة Postfix لهذه الجلسة (session) فقط:
service postfix onestart
لبدء Postfix تلقائيًا عند بدء النظام ، افتح /etc/rc.conf للتعديل:
nano /etc/rc.conf
أضف السطر:
postfix_enable=YES
أحفظ وأغلق الملف.
بعد ذلك :
service postfix start
لبدء Postfix.
6. تمكّين "Less Secure Apps" في Gmail
بشكل افتراضي يُسمح فقط بتسجيل الدخول الأكثر أمانًا مثل تسجيل الدخول إلى Gmail على الويب لحساب Gmail الخاص بك.
للسماح بطلبات الترحيل (relay) قم بتسجيل الدخول إلى حساب Gmail الخاص بك وتشغيل السماح بالتطبيقات الأقل أمانًا (Allow less secure apps).
إرسال بريد إلكتروني تجريبي
اختبر الاعدادات الجديدة الخاص عن طريق إرسال بريد إلكتروني باستخدام الأمر mail .
mail -s "Test subject" recipient@domain.com
سيظهر لك سطر فارغ (أو CC):
يمكنك تجاوزه بالضغط على Enter.
اكتب نص رسالتك واضغط على Enter للأسطر الجديدة.
عند الانتهاء من إنشاء البريد الإلكتروني اكتب CTRL-D لإرساله.
لإلغاء البريد الإلكتروني اضغط على CTRL-C مرتين.
لإرسال بريد إلكتروني مكتوب مسبقًا استخدم الأمر:
mail -s "Subject Here" recipient@domain.com < textfile
textfile هو اسم الملف الذي يحتوي على النص الذي سيتم إرساله.
استكشاف الأخطاء وإصلاحها
الخطوات
Debian:
less /var/log/mail.log
Ubuntu و Fedora و CentOS و OpenSUSE و Arch Linux:
تحقق من السجلات بحثًا عن أي أخطاء في Postfix:
journalctl
FreeBSD:
less /var/log/maillog
إذا تلقيت أخطاء المصادقة من Gmail فتحقق من تشغيل السماح بالتطبيقات الأقل أمانًا في إعدادات حساب Gmail كما هو مشروح سابقاً.
تحقق من وجود ملف كلمة المرور sasl_passwd وأن محتوياته منسقة بشكل صحيح ، كما هو مشروح سابقاً.
إذا أجريت أي تغييرات على ملف كلمة المرور فتأكد من تكرار خطوات تجزئة ملف كلمة المرور الجديد وإعادة تشغيل Postfix.
If you see any TLS errors, double check the configuration in main.cf as specified in Step 3. If you make any configuration changes, restart Postfix as specified in Step 5.
إذا رأيت أي أخطاء في TLS ، فتحقق جيدًا من الإعدادات في main.cf.
إذا أجريت أي تغييرات في فأعد تشغيل Postfix.