
في عالم البريد الإلكتروني، هناك العديد من الجوانب المتعلقة بالاختبار، ولكن أحد أبسط الاختبارات التي يمكنك القيام بها هو ببساطة استخدام telnet للدخول إلى خادم SMTP معين. هذا الاختبار لSMTP مفيد في تحديد ما إذا كانت أبسط المشاكل موجودة أم لا.
في عالم البريد الإلكتروني، هناك العديد من الجوانب للاختبار، ولكن أحد أبسط الاختبارات التي يمكنك القيام بها هو ببساطة التلنت إلى خادم SMTP معين. هذا الفحص لـ SMTP مفيد في تحديد ما إذا كانت هناك مشاكل أساسية أو لا توجد.
هل الخادم يعمل؟
هل هناك جدار ناري يعيق الاتصال؟
هل يسمح خادم البريد بإعادة التوجيه لاسم نطاق/عنوان بريد إلكتروني معين؟
ما هي أوامر SMTP التي يدعمها خادم البريد؟
هل يستجيب الخادم باسم المضيف الصحيح؟
هل يعمل الاتصال خارج أي برامج طرف ثالث أو APIs؟
يمكن الإجابة على جميع هذه الأسئلة وغيرها من خلال اختبار تلنت بسيط.
قبل أن نبدأ، تأكد من فتح مقالنا المصاحب لهذا المنشور: إلى أين تُرسل رسائل الارتداد؟ في علامة تبويب جديدة حتى تتمكن من قراءته بعد الانتهاء من هذه المدونة.
كملاحظة، تتم تغطية الأوامر المستخدمة في الأمثلة التالية (بالإضافة إلى أوامر إضافية) في القسم 4.1 من RFC 2821.
كيف أرسل بريدًا إلكترونيًا باستخدام Telnet؟
إرسال البريد الإلكتروني عبر telnet يمكن أن يساعدك في تحديد مشاكل تسليم البريد في التكوين الحالي لديك.
قبل إرسال بريد إلكتروني باستخدام telnet، تأكد من أن telnet مثبت ومفعل على جهاز الكمبيوتر الخاص بك. معظم أجهزة الكمبيوتر تأتي مثبتة مسبقًا مع عميل telnet. بالنسبة إلى إصدارات Windows التي لا تتوفر بها، يمكن تثبيت واحد بفتح قسم "البرامج والميزات" في لوحة التحكم واختيار "تشغيل ميزات Windows أو إيقاف تشغيلها". مع فتح هذه النافذة، اختر "عميل telnet" ثم انقر فوق OK.
بمجرد التحقق من تثبيت عميل telnet على الخادم، افتح نافذة الطرف حيث ستدخل أوامر المطالبات الخاصة بك. على Windows، استخدم Windows + R، ثم اكتب "cmd" واضغط على enter. لمستخدمي Mac، يمكنك العثور على أيقونة الطرف بفتح Finder والبحث على صفحة التطبيقات عن "المرافق"، أو بإدخال "الطرف" في وظيفة البحث في Launchpad.
بعد ذلك، نحتاج إلى العثور على خادم بريد لتسجيل الدخول إليه. لهذا الغرض، سنحتاج إلى سجل DNS MX لنطاق معين. يمكن العثور على ذلك باستخدام الأمر التالي (في هذه الأمثلة سيتم استخدام port25.com، ولكن يمكن استبدال أي نطاق آخر):
Windows:
nslookup -type=mx port25.com
إجابة غير موثوقة:
port25.com تفضيل MX = 100، محول البريد = mail.port25.com
Linux:
nslookup -type=mx port25.com
إجابة غير موثوقة:
port25.com محول البريد = 100 mail.port25.com.
يستخدم SMTP واحدًا من ثلاثة منافذ — 25، 465، أو 587، والتي تُستخدم عادةً بواسطة Microsoft Outlook. إذا كان خادم ترحيل SMTP الخاص بك يستخدم منفذًا مختلفًا عن 25 كما هو مبين في المثال، فأنت ستستخدم المنفذ المحدد من قبل استجابة خادم تبادل البريد لطلب nslookup. يمكنك أيضًا التحقق من المنفذ الذي يعتمد عليه SMTP الخاص بك عن طريق سؤال مدير النظام الخاص بك أو تسجيل الدخول إلى خادم تبادل البريد ومراجعة البروتوكولات.
بعد ذلك نحتاج إلى DNS PTR للعنوان IP الذي سنستخدمه. أولاً، نحتاج إلى معرفة العنوان IP الذي يراه الإنترنت لنا. للعثور على ذلك، يمكننا استخدام موقع ويب مثل:
مع عنوان IP شغل الأمر التالي، حيث A.B.C.D هو العنوان IP.
Windows:
nslookup -type=ptr A.B.C.D
إجابة غير موثوقة:
D.C.B.A.in-addr.arpa الاسم = server.example.com
Linux:
nslookup -type=ptr A.B.C.D
إجابة غير موثوقة:
D.C.B.A.in-addr.arpa الاسم = server.example.com
server.example.com هي مجرد مثال، وستكون النتائج مختلفة لك.
الآن بعد أن حصلنا على سجل MX لـ port25.com وPTR للعنوان IP الذي سنستخدمه، حان الوقت لتسجيل الدخول إلى خادم SMTP. لاستخدام ذلك، اتبع الأمر التالي:
telnet mail.port25.com 25
سيتم عرض شيء مشابه لما يلي الآن:
يحاول الاتصال بالعنوان 69.63.149.30... متصل بـ mail.port25.com (69.63.149.30). رمز الهروب هو '^]'. 220 mail.port25.com (PowerMTA(TM) v4.0) خدمة ESMTP جاهزة
إذا تلقيت رسالة خطأ مثل "لا يمكن الاتصال" في هذه النقطة، إما أن رقم المنفذ صحيح أو أن خادم البريد يواجه مشاكل.
الأمر الأول الذي نحتاج إلى إصداره إلى خادم البريد الخاص بنا لمتسابق بريد SMTP هو EHLO أو HELO. هذا هو تحية أساسية تبدأ الاتصال بين عميل telnet وخادم SMTP. أيضا يتم تمرير DNS PTR للعنوان IP الذي نتصل منه كما هو محدد سابقًا.
EHLO server.example.com
شيء مشابه لما يلي يجب أن يتم إرجاعه:
250-mail.port25.com يقول مرحبًا 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-CHUNKING 250-8BITMIME 250-XACK 250-XMRG 250-SIZE 54525952 250 VERP 250 DSN
هذا يظهر أوامر SMTP التي يقبلها خادم SMTP. ليست كل خوادم SMTP تدعم نفس مجموعة الأوامر. على سبيل المثال، ياهو تظهر فقط ما يلي:
250-8BITMIME 250-SIZE 41943040 250 PIPELINING
و AOL تظهر واحدة فقط مع:
250 DSN
الأمر التالي الذي نحتاج إلى إصداره هو MAIL FROM. هذا يحدد العنوان الذي تُرسل إليه الرسائل المرتدة. هذا ليس نفس عنوان from header، الذي يظهر في عميل البريد الإلكتروني.
MAIL FROM: <support@port25.com> 250 2.1.0 MAIL ok
تأكد من استخدام اسم النطاق الذي يناسب نطاق خادم بريدك. على سبيل المثال، إذا كان نطاق بريدك هو anycompany.com، ستحتاج إلى استخدام you@anycompany.com بدلاً من بريد إلكتروني خارجي مثل you@free-mail-provider.com. يمكن أن تسبب التغييرات في أسماء النطاقات ظهور رسالة خطأ.
الآن بعد أن تم إرسال أمر MAIL FROM، يمكننا إرسال أمر RCPT TO. هذا الأمر يخبر خادم بريد SMTP إلى من يجب إرسال الرسالة. يمكن أن يكون هذا نفس العنوان الموجود في رأس to أو مختلفًا عن العنوان الموجود في عميل البريد الإلكتروني.
RCPT TO: <support@port25.com> 250 2.1.5 <support@port25.com> ok
تحقق جيدًا من عنوان المستلم قبل إرسال أمر RCPT TO - يمكن أن تشير رسالة خطأ هنا إلى مستلم بريد إلكتروني محرف أو محظور.
الأمر الأخير الذي يجب تشغيله قبل بدء جسم الرسالة هو أمر DATA. هذا الأمر يخبر خادم بريد SMTP أن كل ما سيأتي بعد ذلك هو جسم الرسالة (الذي يحتوي أيضًا على الرؤوس).
DATA 354 send message
من المهم أن نلاحظ أنه إذا كان خادم البريد يدعم PIPELINING، كما يفعل mail.port25.com، فقد ينتظر خادم بريد SMTP حتى يتم إصدار أمر DATA قبل الرد على أي أوامر أخرى بعد EHLO/HELO. في هذه الحالة، أدخل أوامر MAIL FROM، RCPT TO، وDATA قبل انتظار الرد.
الآن بعد أن تم إرسال أمر DATA يمكننا البدء في إرسال محتويات الرسالة. يبدأ ذلك مع مختلف الرؤوس. يجب أن تحتوي الرسالة على الأقل على رؤوس to، from، subject، وdate. ستظهر الرؤوس التي يتم إدخالها هنا للمستخدم في عميل البريد الإلكتروني الخاص به.
From: "John Smith" <jsmith@port25.com> To: "Jane Doe" <jdoe@port25.com> Subject: رسالة اختبار مرسلة من جلسة telnet يدويًا Date: Wed, 11 May 2011 16:19:57 -0400
مع تعيين الرؤوس، نضيف الآن سطر فارغ مع عودة العربة/تغذية السطر (فقط اضغط على enter مرتين) ثم نبدأ في جسد الرسالة الفعلي.
مرحبًا بالعالم، هذه رسالة اختبار مرسلة من جلسة telnet يدوية. مع خالص التحيات، مدير SMTP
مع اكتمال الرسالة، نحتاج إلى إبلاغ خادم SMTP بأننا انتهينا من الرسالة ونريد من خادم بريد SMTP قبولها. يتم ذلك بنقطة في سطر بمفرده. إذا تطلب الأمر فترة في سطر بمفرده أثناء كتابة رسالة، يجب وضع نقطتين، الأولى تهرب الثانية.
. 250 2.6.0 استلمت الرسالة
إذا حصلت على رسالة خطأ بدلاً من إشعار "استلمت"، سجل التفاصيل ذات الصلة واتصل بمزود البريد الإلكتروني للحصول على مزيد من المساعدة.
أخيرًا، يتم إرسال أمر QUIT لإغلاق الاتصال:
QUIT 221 2.0.0 mail.port25.com يقول وداعًا
مع ذلك، قبل خادم البريد الآن الرسالة للتسليم، إختبار إرسال البريد عبر telnet اكتمل، ويجب أن تكون الرسالة موجودة في صندوق الوارد للعنوان RCPT TO!!!
ها هي كل الأوامر بدون انقطاع:
telnet mail.port25.com 25 يحاول الاتصال بالعنوان 69.63.149.30... متصل بـ mail.port25.com (69.63.149.30). رمز الهروب هو '^]'. 220 mail.port25.com (PowerMTA(TM) v4.0) خدمة ESMTP جاهزة EHLO server.example.com 250-mail.port25.com يقول مرحبًا 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-CHUNKING 250-8BITMIME 250-XACK 250-XMRG 250-SIZE 54525952 250-VERP 250 DSN MAIL FROM: <support@port25.com> 250 2.1.0 MAIL ok RCPT TO: <support@port25.com> 250 2.1.5 <support@port25.com> ok DATA 354 send message From: "John Smith" <jsmith@port25.com> To: "Jane Doe" <jdoe@port25.com> Subject: رسالة اختبار مرسلة من جلسة telnet يدويًا Date: Wed, 11 May 2011 16:19:57 -0400 مرحبًا بالعالم، هذه رسالة اختبار مرسلة من جلسة telnet يدوية. مع خالص التحيات، مدير SMTP . 250 2.6.0 استلمت الرسالة QUIT 221 2.0.0 mail.port25.com يقول وداعًا
إرسال البريد الإلكتروني باستخدام telnet يتيح لك اختبار قدرات الاتصال بسرعة وبتكلفة أقل من تجهيزات أو برامج التشخيص الشاملة.