Добавил:
twitch.tv Заведующий методическим кабинетом, преподаватель на кафедре компьютерного спорта и прикладных компьютерных технологий. Образование - Магистр Спорта. Суета... Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
4
Добавлен:
04.06.2023
Размер:
88.06 Кб
Скачать

Тема: Дослідження роботи служб SMTP, IMAP4 та POP3

Мета: набуття навичок дослідження роботи служб електронної пошти шляхом віддаленого підключення та взаємодії в інтерактивному режимі з поштовим сервером за протоколами примусової доставки електронних текстових повідомлень SMTP та доставки електронних текстових повідомлень за запитом POP3 та IMAP4.

Виконання роботи:

Електро́нна по́шта або е-пошта (англ. e-mail, або email, скорочення від electronic mail) — спосіб обміну цифровими повідомленнями між людьми з використанням цифрових пристроїв, таких як комп'ютери та мобільні телефони, що робить можливим пересилання даних будь-якого змісту.

Електронна пошта, або, як її ще називають, E-mail (від англ. electronic — електронна, mail — пошта) — служба Інтернет для передачі текстових повідомлень та прикріплених до них файлів у вигляді листів. Електронна пошта є однією з найбільш використовуваних. Її схожість на звичайну пошту полягає в тому, що обидві передають повідомлення. Основною перевагою електронної пошти є її швидкість: електронний лист потрапляє в «поштову скриньку» адресата одразу ж після відправлення і зберігається там до прочитання. Відмінність між звичайною та електронною поштою ще полягає в тому, що електронні листи і будь-які додатки до них — розбиваються на дрібні шматочки, названі пакетами, які добираються до одержувача незалежно один від одного. У поштовій аналогії це означало б, що кожен лист розбирається по сторінках, які потім відправляються окремо поодинці і тій же адресі. По дорозі пакети передаються від сервера до сервера до тих пір, поки вони не потрапляють до кінцевого одержувача. Оскільки різні пакети добираються до адресата різними маршрутами, вони можуть поступити до нього в неправильному порядку. Але, як тільки всі пакети прибудуть, з них збирається первинне повідомлення. Звичайно, весь цей складний процес, який ми так довго описували, займає менше хвилини, навіть якщо адресати знаходяться на різних кінцях планети.

Цінною перевагою електронної пошти в порівнянні із звичайною є можливість розсилки одного повідомлення за багатьма адресами відразу; все, що потрібно для цього зробити, — це перерахувати всіх ваших адресатів у відповідному полі E-mail програми. Це знайшло відображення ще в одній з важливій можливості електронної пошти — списках розсилки (англ. mailing lists). Вони полегшують листування з іншими користувачами Internet, які мають спільні інтереси.

Повідомлення, відправлене на поштовий сервер, буде розіслане всім, хто підписався на цей список розсилки, тобто його отримають одразу тисячі користувачів. Підписатися на такі списки може кожний, хто має поштову адресу в Internet.

Сучасний пакет програм електронної пошти має добре організований інтерфейс користувача, який не потребує багато часу і зусиль для засвоєння, та зазвичай забезпечує такі додаткові функції:

• ідентифікація власника поштової скриньки;

• автоматичне приєднання підпису;

• адресні книги;

• перевірка орфографії;

• можливість створення поштових скриньок різного призначення;

• шифрування/дешифрування повідомлень;

• робота у автономному (off-line) режимі;

• фільтрацію/маршрутизацію повідомлень;

• автоматична відправка відповіді про тимчасову відсутність отримувача або автоматична переадресація листа на іншу адресу електронної пошти.

SMTP (англ. Simple Mail Transfer Protocol - простий протокол передачі пошти) - це мережевий протокол, призначений для передачі електронної пошти в мережах TCP / IP.

ESMTP (англ. Extended SMTP) - масштабоване розширення протоколу SMTP. В даний час під "протоколом SMTP», як правило, мають на увазі ESMTP і його розширення.

SMTP використовується для відправки пошти від користувачів до серверів і між серверами для подальшої пересилки до одержувача. Для прийому пошти поштовий клієнт повинен використовувати протоколи POP3 або IMAP.

Щоб доставити повідомлення до адресата, необхідно переслати його поштовому серверу домену, в якому знаходиться адресат. Для цього використовується запис типу MX (англ. Mail eXchange - обмін поштою) системи DNS. Якщо MX запис відсутній, то для тієї ж мети може бути використаний запис типу A. Деякі сучасні реалізації SMTP-серверів (наприклад, Exim [1]) для визначення сервера, що обслуговує пошту в домені адресата, також можуть задіяти SRV-запис (RFC 2782).

Широке поширення SMTP отримав на початку 1980-х років. До нього використовувався протокол UUCP, який вимагав від відправника знання повного маршруту до одержувача і явної вказівки цього маршруту в адресі одержувача, або наявності прямого комутованого або постійного з'єднання між комп'ютерами відправника і одержувача.

Sendmail був одним з перших (якщо не першим) агентом відправки повідомлень, який почав працювати з SMTP. На сьогодні протокол SMTP є стандартним для електронної пошти і його використовують всі клієнти і сервери.

Протокол був розроблений для передачі тільки тексту в кодуванні ASCII, крім того, перші специфікації вимагали обнулення старшого біта кожного переданого байта. Це не дає можливості відсилати текст на національних мовах (наприклад, кирилиці), а також відправляти двійкові файли (наприклад, зображення, відеофайли, програми або архіви). Для зняття цього обмеження був розроблений стандарт MIME, який описує спосіб перетворення двійкових файлів у текстові. Зараз більшість серверів підтримують 8BITMIME, що дозволяє відправляти двійкові файли так само просто, як і текст.

Сервер SMTP - це кінцевий автомат з внутрішнім станом. Клієнт передає на сервер рядок команда <пробіл> параметри <переклад рядка>. Сервер відповідає на кожну команду рядком, що містить код відповіді і текстове повідомлення, відокремлене пропуском. Код відповіді – число від 100 до 999, представлене у вигляді рядка, який трактується таким чином:

2ХХ - команда успішно виконана;

3XX - очікуються додаткові дані від клієнта;

4ХХ - тимчасова помилка, клієнт повинен зробити наступну спробу через деякий час;

5ХХ - невиправна помилка.

Текстова частина відповіді носить довідковий характер і призначений для людини, а не програми.

ESMTP - розширюваний протокол, на відміну від SMTP. При встановленні з'єднання сервер оголошує про набір підтримуваних розширень (як відповідь на команду EHLO). Відповідні розширення можуть бути використані клієнтом при роботі. Необхідно пам'ятати, що якщо сесія починається з команди HELO (яка використовується в «класичному» SMTP, RFC 821), то перелік розширень виводитися не буде.

Завдання:

Після ознайомлення з основними принципами взаємодії між клієнтами та поштовими серверами за протоколами SMTP, POP3 та IMAP4 я, використовуючи програму-клієнт віддаленої реєстрації PUTTY, виконав віддалене підключення за протоколом Telnet до 25-го порту навчального поштового сервера ss.tzn.lab.krmk.

У відповідь на привітання поштового SMTP-сервера 220 sstzn.tzn.lab.krmk ESMTP Postfix за допомогою команди HELO 314-computer8.tzn.lab.krmk я виконав ідентифікацію хоста-відправника (Свого комп’ютера).

Результатом стало повідомлення сервера: 250 sstzn.tzn.lab.krmk

За допомогою команди MAIL FROM:314-student8@tzn.lab.krmk, вказав електронну поштову адресу користувача-відпраника поштового повідомлення. Результатом стало повідомлення сервера: 250 2.1.0 Ok

За допомогою команди RCPT TO:315-student2@tzn.lab.krmk я вказав електронну поштову адресу користувача-одержувача поштового повідомлення. Результатом стало повідомлення сервера з кодом 250: 250 2.1.5 Ok

За допомогою команди DATA я повідомляю поштовий сервер про свій намір розпочати введення тіла поштового повідомлення. У відповідь з’явилося повідомлення з кодом 354 про готовність сервера сприйняти текстове повідомлення: 354 End data with <CR><LF>.<CR><LF>

В цьому повідомленні вказується на те, що після завершення введення тіла поштового повідомлення користувач має перейти на новий рядок та ввести символ «.» (ознака кінця тіла поштового повідомлення).

Я ввів коротке текстове повідомлення, використовуючи лише латинські літери: Hello. This letter from student 8 from 314 kab. How are you?.

Після натискання клавіші Enter поштове повідомлення буде збережено на сервері і поставлене в чергу на відправлення адресатові.

Сервер повернув повідомлення про успішне розміщення листа в черзі на віправку (сервер вказує ідентифікатор листа в черзі повідомлень на відправку): 250 2.0.0 Ok: queued as B49C38829

Під кінець я завершив сеанс інтерактивного зв’язку з сервером командою QUIT.

Далі, використовуючи все ту ж програму-клієнт віддаленої реєстрації PUTTY, я виконав віддалене підключення за протоколом Telnet до 110-го порту навчального поштового сервера sstzn.tzn.lab.krmk, як показано на малюнку:

У відповідь на привітання поштового РОР3-сервера +OK Dovecot ready за допомогою команди USER 315-student2@tzn.lab.krmk я виконав авторизацію користувача-отримувача, обліковий запис якого є на поштовому POP3-сервері. Результатом було повідомлення сервера: +OK

За допомогою команди PASS 315-s2 я ввів пароль на доступ до поштової скриньки користувача-отримувача, обліковий запис якого є на поштовому POP3-сервері. Результатом авторизації стало повідомлення сервера: +OK Logged in.

Тепер за допомогою команди STAT я отримую інформацію про кількість повідомлень у поштовій скринці користувача та загальний об’єм у байтах цих повідомлень: STAT Результатом стало: +OK 1 384

За допомогою команди LIST я отримав список пронумерованих повідомлень у поштовій скринці користувача та об’єм у байтах кожного з цих повідомлень: LIST Результат: +OK 1 messages: 1 384 .

За допомогою команди RETR 1 я отримав повідомлення з навчального поштового сервера та вивів його зміст на екран. Результат:

+OK 384 octets

Return-Path: 314-student8@tzn.lab.krmk

X-Original-To: 315-student2@tzn.lab.krmk

Delivered-To: 315-student2@tzn.lab.krmk

Received: from 314-computer8.tzn.lab.krmk (314-computer8.tzn.lab.krmk [10.40.0.42])

by sstzn.tzn.lab.krmk (Postfix) with SMTP id B49C3B829

for <315-student2@tzn.lab.krmk >; Mon, 3 Dec 2018 10:41:41 +0200 (EET)

X-EsetId: 37303A29C6DAA56F67726A

Hello. This letter from student 8 from 314 kab. How are you? .

За допомогою команди DELE 1 я помітив дане повідомлення як призначене для видалення після завершення сеансу роботи з поштовим сервером. Результат: +OK Marked to be deleted.

Тепер, за допомогою команди RSET, я знімаю мітки видалення з усіх повідомлень, що були раніше відмічені як ті, що підлягають видаленню: RSET

Результатом вдалого виконання команди має бути відображене на екрані повідомлення сервера: +OK

Тепер завершую сеанс інтерактивного зв’язку з сервером командою QUIT.

Далі, використовуючи знову ж програму PUTTY, виконую віддалене підключення за протоколом Telnet до 143-го порту навчального поштового сервера sstzn.tzn.lab.krmk, як показано на малюнку:

У відповідь на привітання поштового IMAP4-сервера

* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID

ENABLE IDLE AUTH=PLAIN AUTH=LOGIN] Dovecot ready

за допомогою команди a001 LOGIN 315-student2@tzn.lab.krmk 315-s2 я виконав

авторизацію користувача-отримувача, обліковий запис якого є на поштовому

IMAP4-сервері.

Результат:

a001 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS

MULTIAPPEND UNSELECT CHILDREN NAMESPACE UIDPLUS LIST

EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT

SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS] Logged in

За допомогою команди a002 LIST "" * я переглянув, які каталоги доступні

користувачеві на поштовому IMAP4-сервері:

a002 LIST "" *

Результат:

* LIST (\HasNoChildren) "/" "INBOX"

a002 OK List completed.

Далі за допомогою команди a003 SELECT INBOX я вибираю каталог на сервері, з

яким користувач буде працювати (в нашому випадку це каталог INBOX, де

зберігаються листи, що надійшли користувачеві):

a003 SELECT INBOX

Результат:

* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)

* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags

permitted.

* 1 EXISTS

* 0 RECENT

* [UNSEEN 1] First unseen.

* OK [UIDVALIDITY 1543827131] UIDs valid

* OK [UIDNEXT 2] Predicted next UID

* OK [HIGHESTMODSEQ] No permanent modsequences

Тепер за допомогою команди a004 UID FETCH 1:1 (UID RFC822.SIZE FLAGS BODY.PEEK[]) я переглядую зміст поштового повідомлення з ідентифікаційним номером 1:

a004 UID FETCH 1:1 (UID RFC822.SIZE FLAGS BODY.PEEK[])

Результат:

* 1 FETCH (UID 1 RFC822.SIZE 366 FLAGS (\Seen) BODY[] {418}

Return-Path: <314-student8@tzn.lab.krmk>

X-Original-To: 315-student2@tzn.lab.krmk

Delivered-To: 315-student2@tzn.lab.krmk

Received: from 314-computer8.tzn.lab.krmk (314-computer8.tzn.lab.krmk [10.40.0.42])

by sstzn.tzn.lab.krmk (Postfix) with SMTP id B49C3B829

for <315-student2@tzn.lab.krmk >; Mon, 3 Dec 2018 10:41:41 +0200 (EET)

X-EsetId: 37303A29C6DAA56F67726A

Hello. This letter from student 8 from 314 kab. How are you?

.

)

a004 OK Fetch completed.

Під кінець я завершив сеанс інтерактивного зв’язку з сервером командою a005 LOGOUT.