بروتوكول إرسال البريد البسيط
SMTP هو المعيار الأساسي لإرسال البريد الإلكتروني عبر الإنترنت. واليوم يستعمل تطوير له باسم ESMTP (اختصاراً لـ Extended SMTP).
الوصف
يعتبر SMTP نظاماً بسيطاً، ذو أساس نصي، حيث يتم تحديد مستقبل، أو أكثر، للرسالة، ومن ثم ينقل لهم نص الرسالة. كما يعتبر نظام الزبون/المخدم client/server، حيث أن الحاسب الزبون يرسل رسالة البريد الإلكتروني إلى المخدم. قد يكون الزبون عميل بريد إلكتروني لدى المستقبل النهائي للرسالة، أو قد يكون مخدم على طريق الرسالة، حيث يستقبل الرسالة أولاً من مرسلها الأساسي، ويكون هنا مخدماً، ومن ثم يعيد إرسالها اإلى المخدم التالي، حيث يقوم هنا بدور زبون لذلك المخدم. عميل البريد الإلكتروني يعلم عنوان مخدم الـSMTP للبريد الصادر من إعداداته. أما المخدم الذي على طريق الرسالة فإنه عادة مايحدد عنوان المخدم الذي سيقوم بتمرير الرسالة إليه عن طريق عنوان المستقبل نفسه، إذ أن عنوان البريد الإإلكتروني يكون من الشكل [email protected]، ففي هذه الحال، فإنه يجب تمرير الرسالة إلى المخدم 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:<[email protected]> S: 250 Ok C: RCPT TO:<[email protected]> S: 250 Ok C: DATA S: 354 End data with <CR><LF>.<CR><LF> C: Subject: test message C: From: [email protected] C: To: [email protected] 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
المراجع
- RFC 821 Simple Mail Transfer Protocol (المعيار الرسمي)
- RFC 2821 The Simple Mail Transfer Protocol (يبطل العمل بالمعيار RFC 821)
az:SMTP bs:Simple Mail Transfer Protocol ca:Simple Mail Transfer Protocol cs:Simple Mail Transfer Protocol da:Simple Mail Transfer Protocol de:Simple Mail Transfer Protocol el:SMTP Simple Mail Transfer Protocol]] eo:SMTP es:Simple Mail Transfer Protocol et:Lihtne meiliedastusprotokoll eu:SMTP fa:قرارداد ساده نامهرسانی fi:SMTP fr:Simple Mail Transfer Protocol gl:SMTP he:Simple Mail Transfer Protocol hr:SMTP hu:Simple Mail Transfer Protocol id:Simple Mail Transfer Protocol is:Simple Mail Transfer Protocol it:Simple Mail Transfer Protocol ja:Simple Mail Transfer Protocol ko:간이 우편 전송 프로토콜 ku:SMTP lb:Simple Mail Transfer Protocol lt:SMTP lv:SMTP mhr:SMTP mk:Simple Mail Transfer Protocol ml:സിമ്പിൾ മെയിൽ ട്രാൻസ്ഫർ പ്രോട്ടോകോൾ ms:Protokol Pindahan Mel Mudah nl:Simple Mail Transfer Protocol nn:Simple Mail Transfer Protocol no:Simple Mail Transfer Protocol pl:Simple Mail Transfer Protocol pt:Simple Mail Transfer Protocol ro:SMTP ru:SMTP sh:SMTP simple:SMTP sk:Simple Mail Transfer Protocol sl:SMTP sr:SMTP sv:SMTP th:Simple Mail Transfer Protocol tr:SMTP uk:SMTP vi:SMTP yo:Simple Mail Transfer Protocol zh:简单邮件传输协议