
في عالم البريد الإلكتروني، هناك العديد من الجوانب المتعلقة بالاختبار، ولكن أحد أبسط الاختبارات التي يمكنك القيام بها هو ببساطة استخدام telnet للدخول إلى خادم SMTP معين. هذا الاختبار لSMTP مفيد في تحديد ما إذا كانت أبسط المشاكل موجودة أم لا.
في عالم البريد الإلكتروني، هناك العديد من الجوانب للاختبار، لكن أحد أبسط الاختبارات التي يمكن القيام بها هو ببساطة استخدام telnet إلى خادم SMTP معين. هذا التحقق من SMTP مفيد في تحديد ما إذا كانت هناك مشكلة أساسية أم لا.
هل الخادم يعمل؟
هل هناك جدار حماية يعيق الاتصالات؟
هل يسمح خادم البريد بترحيل نطاق معين/عنوان بريد إلكتروني؟
ما هي الأوامر التي يدعمها خادم البريد SMTP؟
هل يستجيب الخادم بالاسم المضيف الصحيح؟
هل يعمل الاتصال خارج أي برامج أو واجهات برمجة تطبيقات خارجية؟
يمكن الإجابة على كل هذه الأسئلة والمزيد من خلال اختبار telnet بسيط.
قبل أن نبدأ، تأكد من فتح جزء المرافق لهذا المنشور: إلى أين يتم إرسال رسائل العملاء المرتدة؟ في علامة تبويب جديدة حتى تتمكن من قراءته بعد الانتهاء من هذه المدونة.
ملاحظة، الأوامر المستخدمة في الأمثلة التالية (وكذلك الأوامر الإضافية) مغطاة في القسم 4.1 من RFC 2821.
كيف أرسل بريدًا إلكترونيًا باستخدام Telnet؟
إرسال بريد إلكتروني عبر telnet يمكن أن يساعدك في تحديد مشاكل التسليم ضمن تكوينك الحالي.
قبل إرسال بريد إلكتروني باستخدام telnet، تأكد من أن telnet مُثبت وممكّن على جهاز الكمبيوتر الخاص بك. معظم أجهزة الكمبيوتر تأتي مع عميل telnet مُثبت مسبقًا. بالنسبة لأنظمة Windows التي لا تملك هذه الميزة، يمكن تثبيتها عن طريق فتح قسم "البرامج والميزات" في لوحة التحكم وتحديد "تشغيل ميزات Windows أو تعطيلها". عند فتح هذه النافذة، اختر "عميل telnet" ثم اضغط على موافق.
بمجرد التحقق من تثبيت عميل telnet على الخادم، افتح نافذة الطرفية حيث ستدخل أوامر الاستدعاء الخاصة بك. على Windows، استخدم Windows + R، وأدخل "cmd"، واضغط على Enter. لمستخدمي Mac، يمكنك العثور على أيقونة الطرفية عن طريق فتح Finder والبحث عن "Utilities" في صفحة التطبيقات، أو عن طريق إدخال "طرفية" في وظيفة البحث في Launchpad.
بعد ذلك، نحتاج إلى العثور على خادم بريد لتسجيل الدخول إليه. لذلك، سنحتاج إلى سجل DNS MX لنطاق معين. يمكن العثور على ذلك باستخدام الأمر التالي (في هذه الأمثلة سيتم استخدام port25.com، ولكن يمكن استبدال أي نطاق آخر):
Windows:
nslookup -type=mx port25.com
إجابة غير موثوقة:
port25.com MX preference = 100, mail exchanger = mail.port25.com
Linux:
nslookup -type=mx port25.com
إجابة غير موثوقة:
port25.com mail exchanger = 100 mail.port25.com.
يستخدم SMTP واحدًا من ثلاثة منافذ — 25، 465، أو 587، والتي يستخدمها Microsoft Outlook عادةً. للحصول على تكوينات متقدمة للخادم البريدي وتحسينها، انظر دليلنا عن نصائح تهيئة PowerMTA. إذا كان جهاز توجيه 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 name = server.example.com
Linux:
nslookup -type=ptr A.B.C.D
إجابة غير موثوقة:
D.C.B.A.in-addr.arpa name = server.example.com
server.example.com مجرد مثال، وستكون نتائجك مختلفة.
لذلك الآن بعد أن حصلنا على سجل MX لـ port25.com و PTR لـ IP الذي سنستخدمه، حان الوقت لتسجيل الدخول إلى خادم SMTP. للقيام بذلك، استخدم الأمر التالي:
telnet mail.port25.com 25
يجب أن يظهر شيء مشابه للتالي الآن:
Trying 69.63.149.30... Connected to mail.port25.com (69.63.149.30). الشخصية الهاربة هي '^]'. 220 mail.port25.com (PowerMTA(TM) v4.0) ESMTP الخدمة جاهزة
إذا تلقيت رسالة خطأ مثل "cannot connect" في هذه النقطة، إما أن يكون رقم المنفذ صحيحًا أو يواجه خادم البريد مشاكل.
الأمر الأول الذي يجب إصداره لخادم البريد لـ 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 تدعم نفس مجموعة الأوامر. على سبيل المثال، yahoo يعرض فقط التالي:
250-8BITMIME 250-SIZE 41943040 250 PIPELINING
و aol يعرض فقط واحدًا:
250 DSN
الأمر التالي الذي نحتاج إلى إصداره هو الأمر MAIL FROM. هذا يحدد العنوان الذي يتم من خلاله إرسال الإرتدادات. هذا ليس هو نفسه عنوان الـ 'from'، الذي هو عنوان البريد الإلكتروني الموضح في عميل البريد الإلكتروني.
MAIL FROM: <support@port25.com> 250 2.1.0 البريد موافق
تأكد من استخدام اسم النطاق المطابق لنطاق خادم بريدك الإلكتروني. على سبيل المثال، إذا كانت النطاق البريدي هو 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> موافق
تحقق من صحة عنوان المستلم قبل إرسال أمر RCPT TO - يمكن أن تعرض رسالة خطأ هنا تشير إلى وجود خطأ إملائي أو استلام بريد محظور.
الأمر الأخير الذي يجب تشغيله قبل بدء جسم الرسالة هو الأمر DATA. هذا الأمر يخبر خادم البريد SMTP بأن كل شيء سيتم إرساله بعد هذا هو جسم الرسالة (الذي يحتوي أيضًا على الترويسات).
DATA 354 أرسل الرسالة
من المهم ملاحظة أنه إذا كان خادم البريد يدعم 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 مرتين) ثم نبدأ في جسم الرسالة الفعلي.
Hello World, هذه رسالة اختبار مُرسلة من جلسة telnet يدوية. بكل إخلاص، مسؤول SMTP
مع اكتمال الرسالة، نحتاج إلى إعلام خادم البريد SMTP بأننا انتهينا من الرسالة ونريد أن يقبلها خادم البريد SMTP. يتم ذلك بنقطة على سطر بمفردها. إذا احتجت إلى استخدام نقطة على سطر بمفردها أثناء كتابة الرسالة، فيجب عليك وضع نقطتين، الأولى لتفادي الثانية.
. 250 2.6.0 رسالة مستلمة
إذا حصلت على رسالة خطأ بدلاً من إشعار "تم الاستلام"، قم بتسجيل التفاصيل ذات الصلة واتصل بمزود بريدك الإلكتروني للحصول على مزيد من المساعدة. قد تكون مشاكل الاتصال أيضًا مرتبطة بالبروتوكولات الأمنية - تأكد من أنك تستخدم TLS 1.2 أو أعلى للاتصالات الآمنة.
أخيرًا، يتم إرسال الأمر QUIT لإغلاق الاتصال:
QUIT 221 2.0.0 mail.port25.com يقول وداعًا
بهذا يكون خادم البريد قد قبل الآن الرسالة للتوصيل، اختبار إرسال البريد الإلكتروني telnet الخاص بك مكتمل، ويجب أن يكون في صندوق الوارد لعنوان RCPT TO!!!
هنا جميع الأوامر دون انقطاع:
telnet mail.port25.com 25 Trying 69.63.149.30... Connected to 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 البريد موافق RCPT TO: <support@port25.com> 250 2.1.5 <support@port25.com> موافق DATA 354 أرسل الرسالة From: "John Smith" <jsmith@port25.com> To: "Jane Doe" <jdoe@port25.com> Subject: رسالة اختبار مُرسلة من جلسة telnet يدوية Date: Wed, 11 May 2011 16:19:57 -0400 Hello World, هذه رسالة اختبار مُرسلة من جلسة telnet يدوية. بكل إخلاص، مسؤول SMTP . 250 2.6.0 رسالة مستلمة QUIT 221 2.0.0 mail.port25.com يقول وداعًا
إرسال بريد إلكتروني باستخدام telnet يسمح لك باختبار قدرات الاتصال بسرعة وبتكلفة أقل من معدات التشخيص القوية أو البرامج. لاختبار أدوات SMTP المتقدمة، اعتبر استخدام Swaks مع SparkPost لاختبار البريد الإلكتروني الشامل.