چگونه ایمیل اینترنت کار می کند
آیا تا کنون فکر کرده اید چه اتفاقی می افتد زمانی که دکمه ارسال را در برنامه ایمیل خود فشار دهید؟ احتمالا نه، حدس می زنم - تا زمانی که کار می کند. این دقیقا همین دلیل است که شما باید تعجب کنید. در صورتی که چیزی کار نکند خوب است بدانید که کار نمی کند. معمولا این نیمی از راه حل است.
وقتی ایمیل ارسال میکنید، 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 پیدا کنید.
- یک خط فرمان باز کنید
- "telnet
25" را تایپ کنید - با استفاده از SMTP با سرور صحبت کنید.
راه ساده تر این است که از این اپلت جاوا استفاده کنید که تلاش می کند تا پروتکل SMTP را تقلید و از طریق گفت و گو راهنمایی کند.