SMTP در داخل

چگونه ایمیل اینترنت کار می کند

آیا تا کنون فکر کرده اید چه اتفاقی می افتد زمانی که دکمه ارسال را در برنامه ایمیل خود فشار دهید؟ احتمالا نه، حدس می زنم - تا زمانی که کار می کند. این دقیقا همین دلیل است که شما باید تعجب کنید. در صورتی که چیزی کار نکند خوب است بدانید که کار نمی کند. معمولا این نیمی از راه حل است.

وقتی ایمیل ارسال میکنید، SMTP وارد بازی میشود. SMTP برای Simple Mail Transfer Protocol کوتاه است که در RFC 5321: Simple Mail Transfer Protocol تعریف شده است. مشتری ایمیل شما با استفاده از این روش ساده و ساده برای دریافت ایمیل از یک مکان به مکان دیگر به سرور SMTP صحبت می کند.

طلسم

برنامه ایمیل شما یک مشتری SMTP می شود، به پورت 25 سرور ایمیل شما متصل می شود (معمولا پورت SMTP ) و - EHLO می گوید. کامپیوترها، در نهایت، تنها انسان هستند و این چیزی است که می خواهد مودب باشد. در حقیقت، تلاش برای مودبانه نیست، بلکه استفاده از بعضی افزونه ها برای SMTP است که دو عطر از دستور HELO بعد را به وجود آورده اند (دستور SMTP معمولا شامل چهار کاراکتر است).

دو طعم هلو

EHLO، که اخیرا باعث می شود سرور تمام ویژگی های اضافی (مانند آگاه شدن از وضعیت تحویل یا توانایی حمل پیام هایی که به غیر از صفات امن ASCII) پشتیبانی می کند، تبلیغ کند.

نه هر سرور به این تبریک اجازه خواهد داد، اما لازم است که HELO ساده را بپذیریم که به طور طبیعی فرض می کند که هیچ ویژگی اضافی وجود ندارد. هر دو دستور hello، مشتری را مجبور به مشخص کردن دامنه خود پس از ** LO، با این حال. در عمل، این به نظر می رسد چیزی شبیه به:

220 mail.domain.net ESMTP سرور
سلام
501 HELO نیاز به آدرس دامنه دارد
HELO localhost
250 mail.domain.net Hello localhost [127.0.0.1]، خوشحالم که با شما ملاقات می کنم

(ورودی من به صورت کج است ، خروجی سرور سیاه است؛ خطوط شروع با 5 نشان دهنده یک خطا هستند .)

فرستنده

باقی مانده از پروتکل واقعا مستحق ویژگی ساده است. اگر می خواهید یک ایمیل بفرستید، با کلمات کلیدی MAIL FROM: شروع می کنید . در زیر این ایمیل آدرس فرستنده است، همانطور که از طریق آن پیشنهاد شده است. فراموش نکنید که براکتها را در اطراف آدرس قرار دهید (مانند ). ادامه دادن مثال ما، ما:

نامه از:
250 sender@example.com ... فرستنده خوب است

گیرنده

پس از اینکه سرور آدرس فرستنده را پذیرفته، مشتری می تواند آدرس گیرنده را بدهد. فرمان برای این عمل، RCPT TO: باز هم به روشنی نشانگر است. من می خواهم نامه ای به خودم بفرستم:

RCPT TO: recipient@example.com
250 support@lifewireguide.com ... گیرنده خوب (خواهد شد صف)

این که سرور صف را فقط به این معنی می داند: پست الکترونیکی را به صورت محلی ذخیره می کند و آن را با کلیه صف های دیگر در فواصل زمانی (به عنوان مثال، هر 30 دقیقه) ارسال می کند. این رفتار به تنظیمات بستگی دارد و سرور همچنین ممکن است بلافاصله ایمیل را تحویل دهد.

ما تقریبا به پایان رسیدیم با این وجود، هنوز چه چیزی از دست رفته است، بخش مهمی است: پیام واقعی.

پیام

اکنون که "پاکت" تمام شده است، داده های پیام ایمیل همانطور که می تواند پیروی کند. این "داده ها" شامل بدن ایمیل و همچنین زمینه هدر است .

فرمان برای شروع دولت که باعث می شود سرور پیام را بپذیرد DATA است . در زیر این همه زمینه هدر پیام ایمیل و سپس بدن، هر دو برای یک بلوک بزرگ از متن (یا داده ها) تشکیل شده است. برای گفتن سرور که ورودی به پایان رسید، یک نقطه در یک خط به صورت خود استفاده می شود (\ r \ n. \ r \ n). بنابراین پیام من را ارسال میکنم:

داده ها
354 وارد کردن ایمیل، پایان دادن با "." در یک خط به تنهایی
پیام ID:
تاریخ: شنبه، 17 آگوست 1997 18:48:15 +0200
از: Heinz Tschabitscher
به: Heinz Tschabitscher
موضوع: برای مسابقه خلاصه-پروست

خاموش به جهان سوان!
.
250 SAA19153 پیام پذیرفته شده برای تحویل

بله، این بدان معناست که شما می توانید نامی را که کاملا متفاوت از ایمیل ارسال شده در زمینه To: باشد را بیان کنید. به عنوان مثال، شما می توانید از " لیست گیرنده سرکوب شده" استفاده کنید.

پایان

شما هم اکنون می توانید به عنوان ایمیل های بسیاری که شما مایل به تکرار مراحل از MAIL از: به . . اگر با این کار انجام می شود، می توانید با دستور quit از سرور خارج شوید و این فقط کاری است که ما انجام می دهیم:

کویت
221 خداحافظ

چگونه میتونم اینو انجام بدم؟

راه حل بی قاعده اینست که به سرور پستال خروجی شما (شما می توانید آدرس آن را در تنظیمات حساب ایمیل خود در ایمیل خود ) در پورت 25 پیدا کنید.

راه ساده تر این است که از این اپلت جاوا استفاده کنید که تلاش می کند تا پروتکل SMTP را تقلید و از طریق گفت و گو راهنمایی کند.