
هذه أداة سطر أوامر يمكنها إرسال البريد الإلكتروني عبر SMTP. إنها ليست سهلة الاستخدام فحسب، بل توفر أيضًا مجموعة من الخيارات عند الحاجة.
السنة الماضية، نشرنا مقال مدونة يوضح كيفية استخدام أداة Telnet الشائعة والمفيدة للغاية للتحقق من اتصال SMTP.
الخطوة التالية هي تبسيط العملية اليدوية باستخدام أداة رائعة المستوى التالي (تصف نفسها بأنها السكين السويسري للبريد الإلكتروني) تسمى SWAKS. هذه أداة سطر أوامر يمكنها إرسال رسائل البريد الإلكتروني عبر SMTP. هي ليست فقط سهلة الاستخدام بل أيضًا توفر مجموعة متنوعة من الخيارات عند الحاجة.
في البداية، كنت أشعر بالرهبة من كمية الخيارات، لكنها قابلة للاستخدام تمامًا مع الخيارات الأساسية الأكثر بساطة. إذا واجهت أي مشكلات، فقط احفظ هذه الصفحة في مفضلتك، وانسخ والصق الأمثلة، وعدّلها حسب رغبتك. في نهاية هذه المدونة، بمجرد أن تحصل على بعض الألفة ولا يوجد لديك الكثير من التباين/الديناميكية في أوامر SWAKS الخاصة بك، سأوضح لك كيفية إنشاء ملف تكوين الذي يحدد مسبقًا جميع المعلمات الافتراضية الخاصة بك. هذا يجعل تشغيل SWAKS حرفيًا مجرد زر (حسنًا، "مفتاح") بعيدًا!
لغرض هذا التمرين، سنقوم بتشغيل الأوامر من خادم CentOS 7 ولكن الأوامر مماثلة على جميع المنصات المدعومة. كما ذكرنا أعلاه، إذا كنت عالقًا، فقط انسخ والصق مباشرة في نظامك وعدل ما تحتاج. هنا هي الأساسيات:
تثبيت
sudo yum install epel-release -y && sudo yum install swaks -y
بمجرد التثبيت، هذه هي الصيغة الأساسية لإرسال رسالة. في هذا المثال، نحن نستخدم عنوان الخادم المحلي:
swaks -s 127.0.0.1 -f sender@from.com -t recipient@recipient.com
أرسل رسالة مع رأس "الموضوع" وبعض الرؤوس الأخرى وتم تضمين نص "Hello World!" في الجسم:
swaks -s 127.0.0.1 -f me@from.com -t them@recipient.com --header "Subject: Hello! This is the subject header\Second_header:123\nThird_Header:XYZ" --body "Hello World!"
إليك كيفية إضافة مرفق، حيث يقوم SWAKS بتحويل base64 لك، وهي رائعة لاختبار حدود حجم الرسالة:
swaks -s 127.0.0.1 -f me@from.com -t them@recipient.com --attach /path/to/file.tgz
أنت جاهز تمامًا مع الأساسيات! الآن دعونا نرى كيفية تحسين إعدادك بعدة طرق. إليك بعض الأفكار:
استخدام مجدول مثل chron لاختبار بسيط 'هل يعمل' الذي يمكن أن يعمل كأساس أو حتى تعزيز نظام المراقبة لديك.
قياس زمن الاستجابة عند الاتصال وإغلاق الاتصال بخادم البريد.
اختبار إصدارات وقواعد TLS المختلفة
لن تترك وحدك هنا، سأريك كيفية القيام بكل ما سبق. هذه المرة سنقوم بالحقن في خوادم SparkPost الخاصة بنا.
أرسل رسالة إلى خوادم SparkPost الخاصة بنا (كيفية إنشاء مفتاح API هنا، وخيارات SMTP). بمجرد الحصول على مفتاح المصادقة الخاص بك، الصقه في الأمر (تأكد من الحفاظ على المفتاح آمنًا ومؤمنًا!) :
swaks -server smtp.sparkpostmail.com:587 -tls --auth-user SMTP_Injection --auth-password [your auth key] -f me@from.com -t them@recipient.com
إذا كنت تبحث عن إرشادات حول كيفية استكشاف مشاكل الإرسال عبر SMTP إلى خوادمنا تحقق من هذه المقالة. لاختبار اتصال SMTP الأساسي، يمكنك أيضًا التحقق من اتصالات SMTP باستخدام جلسات telnet اليدوية.
تماشيًا مع أفضل ممارسات الأمان، قامت SparkPost بإيقاف دعم جميع إصدارات TLS القديمة باستثناء v1.2 والأعلى. إذا كنت تريد معرفة ما إذا كان نظامك متوافقًا، يسمح لك SWAKS باختبار إصدارات وقواعد TLS محددة.
swaks -s smtp.sparkpostmail.com -tls -p 587 -f me@from.com -t them@recipient.com -tlsp tlsv1_2 --tls-cipher ECDHE-RSA-AES128-GCM-SHA256
في هذا المثال، نحن نستخدم "tlsv1_2" ولكن توجه بتغييره إلى "tlsv1_1" واستخدمه على نطاقات أخرى لمراقبة توافقها.
ماذا لو كنت تريد قياس مدى سرعة استجابة خادم البريد؟ يمكن لـ SWAKS اجتياز دورة SMTP والانفصال في بعض النقاط دون إرسال رسالة، ويمكنك توقيتها باستخدام أمر "time" الذي يظهر في نهاية الإخراج:
$ time swaks -s 127.0.0.1 -f sender@from.com -t them@recipient.com test--quit-after RCPT === محاولة 127.0.0.1:25... === متصل بـ 127.0.0.1. … -> RCPT TO:<them@recipient.com> <- 250 2.1.5 <them@recipient.com> ok -> QUIT <- 221 2.0.0 v1pmta5.jasdevism.com يقول وداعًا === تم إغلاق الاتصال مع المضيف البعيد. real 0m0.049s user 0m0.038s sys 0m0.009s
كما وعدت، إذا وصلت إلى هذه المرحلة فالمكافأة بسيطة: إنشاء ملف تكوين لتحديد المعلمات الافتراضية:
$ Cd $HOME $ vim .swaksrc # انسخ والصق هذا في الملف داخل ملف .swaksrc --from swakstest@jasdevism.com h-From: "Jas Swaks" <swakstest@jasdevism.com> -s 127.0.0.1 --body "This is a test!" --to jsingh@sparkpost.com
بمجرد حفظه، اكتب "swaks" فقط وسوف يملأ كل شيء ويرسله في اتجاهه المبهج! الأفضل من ذلك، يمكنك تجاوزه عن طريق إضافته على سطر الأوامر، قل على سبيل المثال أنك تريد مستلمًا مختلفًا:
swaks -t recipient@somewherelse.com