Need help? Chat now!

Hostwinds دروس

نتائج البحث عن:


جدول المحتويات


ما هو بروتوكول SMTP- CLI؟
المتطلبات الأساسية
اقامة
التبعيات
CentOS / فيدورا
أوبونتو / ديبيان
قم بتنزيل مستودع SMTP CLI
إنشاء ملف كلمة مرور البريد الإلكتروني
إرسال بريد باستخدام بروتوكول smtp-cli
هذا هو قالب التعليمات البرمجية لبرنامج نصي باش
وها هو البريد الإلكتروني الذي تم إرساله
بعض الوسائط المفيدة الأخرى لـ SMTP-CLI
استكشاف الأخطاء وإصلاحها

كيفية استخدام smtp-cli لإنشاء عامل إرسال بريد بسيط (Linux)

العلامات: Email,  Linux 

ما هو بروتوكول SMTP- CLI؟
المتطلبات الأساسية
اقامة
التبعيات
CentOS / فيدورا
أوبونتو / ديبيان
قم بتنزيل مستودع SMTP CLI
إنشاء ملف كلمة مرور البريد الإلكتروني
إرسال بريد باستخدام بروتوكول smtp-cli
هذا هو قالب التعليمات البرمجية لبرنامج نصي باش
وها هو البريد الإلكتروني الذي تم إرساله
بعض الوسائط المفيدة الأخرى لـ SMTP-CLI
استكشاف الأخطاء وإصلاحها

ما هو بروتوكول SMTP- CLI؟

لفهم أفضل ما هو SMTP-CLI، دعنا نتحدث عن ما لم يكن كذلك؛SMTP-CLI ليس خادم بريد إلكتروني أو عامل ترحيل؛ليست أيضا طريقة لإرسال كميات كبيرة من البريد.إنه عميل بريد إلكتروني يسمح بإرسال نص، HTML، الملفات والصور من سطر الأوامر والبرامج النصية.

بدلا من إنشاء خادم بريد إلكتروني آخر، يمكنك استخدام SMTP-CLI لإرسال تحديثات من VPS (S) عبر حساب بريد إلكتروني عن بعد لمراقبة الصحة أو الحالة. يمكنك أيضا إنشاء وظيفة كرون لإعادة توجيه سجلات كجزء من تصلب أمان الخادم. يسمح ذلك لخادمك بتشغيل أكثر أو أقل دون مراقبة ما لم يتم العثور على أخطاء أو تقترب الحدود.

المتطلبات الأساسية

  • خادم بريد إلكتروني بعيد مع حساب بريدك الإلكتروني
  • a VPS that requires mail to be sent outbound
  • وصول سطر الأوامر إلى VPS أعلاه (عبر SSH أو الحصول على VNC)

اقامة

  • 1 Hostwinds VPS مع CentOS 7
  • حساب بريد إلكتروني cPanel
  • سيتم استخدام عميل Putty SSH للوصول

التبعيات

سوف نستخدم GIT للاستيلاء على البرنامج النصي SMTP-CLI من Github. إذا لم يكن لديك بالفعل تثبيته، يمكنك تثبيته مثل هذا:

CentOS / فيدورا

# yum install -y git

أوبونتو / ديبيان

# apt-get install -y git

قم بتنزيل مستودع SMTP CLI

# git clone https://github.com/mludvig/smtp-cli.git

يوجد البرنامج النصي SMTP-CLI (الجزء العلني) داخل دليل يسمى SMTP-CLI، والداخل هو ملف يسمى SMTP-CLI (لا يتيح لنا علامة -l في الأمر إلقاء نظرة على سمات الملف للتأكد من أنه تنفيذ).

# ls -l smtp-cli

إذا كانت تلك "x" بدلا من ذلك "-،" ثم قم بتشغيل هذا الأمر لجعل الملف قابل للتنفيذ.

# chmod +x smtp-cli/smtp-cli

الآن يمكننا اختبار لمعرفة ما إذا كان يعمل.

# smtp-cli/smtp-cli

والذي يجب أن ينتج عنه خطأ كهذا

من الغريب أن يكون الخطأ جيدًا ، ولكن نظرًا لأننا نختبر فقط للتأكد من تنزيل البرنامج النصي وقابل للتنفيذ ، فهذا كل ما نحتاجه الآن.

سنقوم الآن بفحص المسار العالمي (حيث يتحقق VPS عندما أقوم بتشغيل الأشياء من سطر الأوامر بدون مسار كامل)

# echo $PATH

وانسخ smtp-cli إلى دليل المستخدم sbin ضمن مسارك الافتراضي.

# cp smtp-cli/smpt-cli /usr/local/sbin
ls -l /usr/local/sbin/smtp*

الآن يمكننا تشغيل SMTP CLI من أي دليل على VPS دون القلق بشأن تضمين المسار الكامل إلى الملف.

إنشاء ملف كلمة مرور البريد الإلكتروني

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

منذ أن أركض كمستخدم جذر وإنشاء جذر Cronjob، سيكون هذا الملف في / الجذر / الدليل. قد تكون مهمة Cron الخاصة بك في مستخدمك Crontab وفقا للامتيازات التي تمنحها من قبل مسؤول النظام الخاص بك، وفي هذه الحالة قد تقوم بتخزين هذا في اسم / home / eremername.

# touch /root/.passwd
echo 'SomeRandomPassword' > /root/.passwd

لاحظ أن "somwerandompassword" تحتاج إلى أن تكون نص كلمة مرور البريد الإلكتروني الفعلي لحساب البريد الإلكتروني البعيد الخاص بك.

إرسال بريد باستخدام بروتوكول smtp-cli

نصل الآن إلى الجزء الجيد ، إرسال بريد إلكتروني كجزء من برنامج نصي أو من سطر الأوامر. سأقوم باختباره بإرسال الملف الذي أنشأناه كجزء من دليل vnstat الخاص بنا.

كملاحظة ، يسمح جزء $ (بعض الأوامر) أدناه بتشغيل أمر مضمنًا واستخدام مخرجات هذا الأمر كمدخل للمعامل.

# smtp-cli --verbose --server mail.emaildomain.TLD:587 --enable-auth --user smtp-cli_guide@emaildomain.TLD --pass $(cat /root/.passwd) --from smtp-cli_guide@emaildomain.TLD --to test2@emaildomain.TLD --subject VPS-stats --attach /var/www/html/vps_bandwidth_stats.png

الآن بعد أن علمنا أنه يعمل ، يمكننا وضع الأمر في نص باش أو وظيفة كرون.

هذا هو قالب التعليمات البرمجية لبرنامج نصي باش

#!/etc/bash

smtp-cli --verbose --server mailservername.emaildomain.TLD:587 --enable-auth --user login-user@emaildomain.TLD --pass $(cat /root/.passwd) --from email_orinator@emaildomain.TLD --to email_destination@emaildomain.TLD --subject subject-line --attach /full/path/filename.tosend >> /path/to/logfile.log

وها هو البريد الإلكتروني الذي تم إرساله

بعض الوسائط المفيدة الأخرى لـ SMTP-CLI

--help
--body-plain=<text|filename>
--body-html=<text|filename>

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

استكشاف الأخطاء وإصلاحها

يمكن أن تنشأ عدة مشكلات مختلفة عند استخدام البرنامج النصي. ستكون المشكلة الأولى كيف يصادق خادم البريد الخاص بك. هل تدخل عنوان بريد إلكتروني كامل أو مجرد اسم مستخدم؟ هذا هو ما ستحتاج إليه بعد الحجة -user. يفترض المثال، تدخل عنوان البريد الإلكتروني الكامل باعتباره -USER. استخدم بيانات الاعتماد التي تستخدمها عادة لخادمك.

منطقة المشكلة الثانية هي من الميدان. تأكد من أن هذا هو حساب البريد الإلكتروني الذي تقوم بتسجيل الدخول إليه. لا يمكنك إرسال بريد من حساب لا تتحكم فيه.

ثالث هو اسم الخادم وبناء منفذ حقل -Server. يجب أن يكون هذا الاسم اسم مجال مؤهل بالكامل لخادم البريد الإلكتروني الصادر متبوعا ب A: PortNumber. المنافذ القياسية ل SMTP هي 25، 587، 465.

أخيرا، يجب أن يكون حقل -to عنوان بريد إلكتروني صالحا، أو لن يصل إلى وجهة.

كتب بواسطة Paul Schene  /  يوليو 10, 2020