الرئيسيةبحث

بروتوكول إرسال البريد البسيط

SMTP هو المعيار الأساسي لإرسال البريد الإلكتروني عبر الإنترنت. واليوم يستعمل تطوير له بإسم ESMTP (إختصاراً لـ Extended SMTP).

فهرس

الوصف

يعتبر SMTP نظاماً بسيطاً، ذو أساس نصي، حيث يتم تحديد مستقبل، أو أكثر، للرسالة، ومن ثم ينقل لهم نص الرسالة. كما يعتبر نظام زبون-مخدم، حيث أن الحاسب الزبون يرسل رسالة البريد الإلكتروني إلى المخدم. قد يكون الزبون عميل بريد إلكتروني لدى المستقبل النهائي للرسالة، أو قد يكون مخدم على طريق الرسالة، حيث يستقبل الرسالة أولاً من مرسلها الأساسي، ويكون هنا مخدماً، ومن ثم يعيد إرسالها اإلى المخدم التالي، حيث يقوم هنا بدور زبون لذلك المخدم. عميل البريد الإلكتروني يعلم عنوان مخدم الـSMTP للبريد الصادر من إعداداته. أما المخدم الذي على طريق الرسالة فإنه عادة مايحدد عنوان المخدم الذي سيقوم بتمرير الرسالة إليه عن طريق عنوان المستقبل نفسه، إذ أن عنوان البريد الإالكتروني يكون من الشكل user@host.domain، ففي هذه الحال، فإنه يجب تمرير الرسالة إلى المخدم host.domain يقوم عميل الـSMTP بإنشاء إتصال TCP إلى المنفذ 25 في المخدم الهدف (بالشكل الإفتراضي)، حيث أنه من السهل تماماً الإتصال ومعاينة مخدم SMTP بواسطة برنامج telnet. يعتبر نظام SMTP نظام "دفع" إذ أنه لايسمح بـ"سحب" الرسائل من المخدم الهدف.. إذ أنه للقيام بذلك يجب على عميل البريد الإلكتروني استخدام أنظمة أخرى مثل POP3 أو IMAP.

مخدم SMTP للبريد الصادر

يحتاج عميل البريد الإلكتروني لمعرفة اسم أو عنوان آي بي مخدم الـSMTP للبريد الصادر، إذ أن برنامج عميل البريد الإلكتروني لايقوم بتسليم الرسالة إلى مخدم الـSMTP الهدف مباشرة، بل يسلمها إلى مخدم البريد الصادر، الذي يوجد اسمه/عنوانه في إعدادات البرنامج، حيث يهتم مخدم البريد الصادر هذا بتسليم الرسالة بناءً على طلب المستخدم. وهذا يسمح بتصميمات مختلفة وملائمة للشبكات حسب الحاجة. إذ أنه يمكن لمستخدمين ليسوا على إتصال بالانترنت، ووراء جدار ناري، ولكن على إتصال بمخدم SMTP للبريد الصادر، أن يستخدموا هذا المخدم لإرسال رسائل بريد إلكتروني لأي عنوان.

القيام بإتصال بسيط مع مخدم SMTP

بعد إنشاء إتصال بين مرسال الرسالة (العميل) ومستقبلها (المخدم)، يتبادل الإثنان الأوامر والردود (التي يتم تبادلها بشكل نصي)، حيث يظهر التالي جلسة إتصال بين زبون ومخدم، يتم من خلالها إرسال رسالة من الزبون عن طريق هذا المخدم، كل مايرسله المخدم مسبوق بـ"S"، وكل ما يرسله الزبون مسبوق بـ"C". يمكن بدء إتصال TCP عن طريق استخدام الأمر telnet من سطر الأوامر على الحاسب الزبون كالتالي:

telnet example.com 25

حيث يقوم بفتح قناة إتصال TCP إلى المنفذ 25 الموجود على الحاسب ذو العنوان example.com

S: 220 www.example.com ESMTP Postfix C: HELO mydomain.com S: 250 Hello mydomain.com C: MAIL FROM:<sender@mydomain.com> S: 250 Ok C: RCPT TO:<friend@example.com> S: 250 Ok C: DATA S: 354 End data with <CR><LF>.<CR><LF> C: Subject: test message C: From: sender@mydomain.com C: To: friend@example.com C: C: Hello, C: This is a test. C: Goodbye. C: . S: 250 Ok: queued as 12345 C: QUIT S: 221 Bye

تقوم المخدمات عادة بالإستفسار من المخدم عن امتدادات SMTP التي يدعمها، وذلك بإستخدام الأمر EHLO عوضاً عن HELO، فإذا لم يرد المخدم على هذا الأمر يعود الزبون لإستخدام HELO التقليدية. أحد إمتدادات الـSMTP الهامة التي قد يرد بها المخدم على أمر EHLO هي الكلمة المفتاحية SIZE التي يتبعها حجم الرسالة الأقصى التي يمكن للمخدم أن يستقبلها. إذ أن المخدمات والزبائن الأقدم سوف تقوم بعملية نقل الرسائل الضخمة التي يتم رفضها بعد إنتهاء عملية النقل، بعد أن تكون الكثير من موارد الشبكة قد استهلكت، أضف إلى وقت الإتصال الكبير الذي تطلبته العملية والذي قد يشكل عبئاً كبيراً على مستخدمي اتصال الـDialUp الذين يدفعون بالدقيقة.

S: 220-serverdomain.com ESMTP {postfix version and date} S: 220 NO UCE. {etc., terms of service} C: EHLO mydomain.com S: 250-serverdomain.com Hello mydomain.com [127.0.0.1] S: 250-SIZE 14680064 S: 250-PIPELINING S: 250 HELP

المراجع