Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ферелетич Дипломна.rtf
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
615 Кб
Скачать
☆

2.3. Складові частини листа: конверт, заголовки і тіло повідомлення

Повідомлення, яке передається по електронній пошті, складається з трьох основних частин.

  1. Конверт (envelope) використовується MTA для адресації кореспонденції. Наведемо приклад, конверт сформований у результаті виконання двох SMTP-команд:

MAIL From: <rstevens@sun.tuc.noao.edu >

RCPT To: <rstevens@noao.edu >

  1. Заголовки (headers) листа формуються й інтерпретуються користувальними агентами. Кожний заголовок складається з ключового слова і значення, розділених двокрапкою. У RFC 822 визначений формат і зміст полів різних заголовків за винятком тих, назви яких починаються з літери X – такі заголовки може визначити сам користувач при конфігуруванні свого клієнта. Якщо заголовок не вміщується в один рядок, то він продовжується на наступному рядку з відступом.

  2. Тіло (body) має текст самого повідомлення. У RFC 822 тіло визначене як набір рядків у форматі NVT ASCII. По команді DATA у цьому форматі послідовно передаються спочатку всі заголовки, потім порожній рядок і, нарешті, тіло повідомлення. При цьому розмір кожного пересланого по команді DATA рядка не повинен перевищувати 1000 байтів.

В цілому поштове повідомлення формується в такий спосіб. Користувальний агент сприймає введений нами текст (тіло повідомлення), постачає його заголовками і передає все своєму МТА. Останній, додавши особисті заголовки й оформивши конверт, посилає результат наступному МТА, і так далі по ланцюжку.

Термін вмістимість (content) часто використовується для позначення всієї сукупності заголовків і тіла листа. Таким чином, спочатку передається конверт, а потім по команді DATA клієнтом пересилається весь вмістимість повідомлення.

Формат NVT ASCII

Відмінною рисою SMTP є те, що всі частини повідомлення – конверт, заголовки і тіло – передаються у форматі NVT ASCII. При цьому сім розрядів символу ASCII передаються в байті з обтуленим бітом (через це виникають проблеми при передачі по Internet текстів, що мають літери національних алфавітів (у тому числі кирилиці) у кодуваннях, що використовують старший біт).

Інтервали між повторними спробами передати поштове повідомлення.

Як тільки лист потрапив від користувального агента до цього МТА, той зразу ж пробує переслати листа за призначенням. При невдачі МТА ставить повідомлення в чергу на відправлення і через деякий час робить ще одну спробу.

RFS Вимога до хоста рекомендує встановлювати початковий інтервал між повторюваними передачами, що дорівнює 30 хв. Оскільки невдала спроба могла бути наслідком збію (наприклад, адресована поштова машина перевантажувалась або порушений зв'язок), протягом першої години зміст повторити передачу другий раз. В сумі збереження повідомлення в черзі на відправку повинен бути не меншим 4 – 5 днів.

2.4. Розвиток smtp

Електронна пошта в Internet постійно модернізується. Зміни стосуються всіх частин, з яких складається поштове повідомлення : у конверті можуть застосовуватися розширені SMTP – команди, у заголовках тепер допускаються і неналежні наборові ASCII символи, а тіло листа може структуроване (стандарт МІМЕ).

Нововведення в конверті: розширені SMTP-команди.

У RFC 1425 [Klensin et al., 1993а] була запропонована основа для додавання додаткових можливостей до протоколу SMTP, у разі чого з’явився ESMTP, тобто розширюваний варіант SMTP (Extended SMTP), що забезпечує сумісність між реалізаціями протоколу, що відрізняються асортиментом підтримуваних ними можливостей. Усі введення в рамках ESMTP розширення повинні бути описані в RFC і зареєстровані IANA.

SMTP-клієнт, що бажає використовувати розширення протоколу, починає свій сеанс із SMTP-сервером командою EHLO замість стандартної HELO. Якщо сервер підтримує ESMTP, його відповідь складається з кількох рядків, кожен з яких починається кодом 250 і звичайно містить одне ключове слово (keyword) і необов’язковий параметр (argument). Перераховані у відповіді ключові слова і визначають той конкретний набір команд ESMTP, що реалізовані в даному сервері. В усіх рядках відповіді, крім останнього, ключове слово відділене від коду 250 дефісом. Ознакою рядка, що завершує список команд, служить пробіл, який використовується як розділювач замість дефіса.

Нововведення в заголовках:символи, відмінні від ASCII.

Відповідно до RFC 1522 [Moore,1993] поля заголовка, оформленого згідно RFC822 (наприклад, імена відправника й адресата або тема листа), тепер можуть містити ланцюжки, які не входять у таблицю ASCII символів, закодованих у такий спосіб: = ? charset ? encoding? encoded-text ? =

Поле сharset (кодова таблиця) ідентифікує використовуваний символьний набір. Припустимі значення цього полючи: us-ascii або iso-8859-Х, де Х – якась цифра (наприклад, iso-8859-1). Поле encoding (кодування) – одиночний символ, що визначає метод кодування. Припустимо два значення (Q i B):

  1. Q (quoted-printable) означає обмежено відтворений текст. Ця схема кодування призначена для національних алфавітів, заснованих на латиниці. Семибітні символи передаються як NVT ASCII ( з нульовим старшим бітом ), інші конвертуються в триплет : знак «дорівнює», супроводжуваний двозначним шістнадцятковим кодом символу. Наприклад, символ е ( двійкове значення якого 11101001 або 0хе9 ) буде представлений триплетом =Е9. Пробіли завжди передаються як символи підкреслення або як триплет =20. Таке кодування застосовується для тексту, у якому переважають символи ASCII і лише рідко зустрічаються спеціальні символи.

  2. В (base-64 ) означає кодування по модулю 64. Тут кожні три послідовних байти (24 біта ) розбиваються на чотири шестибітні відрізки, кожний з яких, у свою чергу, відображається в один із 64 символів NVT ASCII відповідно до таблиці маємо:

Значення (6 біт)

Символ ASCII

Значення (6 біт)

Символ ASCII

Значення (.6 біт)

Символ ASCII

Значення (6 біт)

Символ ASCII

0

A

10

Q

20

g

30

w

1

B

11

R

21

h

31

x

2

C

12

S

22

i

32

y

3

D

13

T

23

j

33

z

4

E

14

U

24

k

34

0

5

F

15

V

25

l

35

1

6

G

16

W

26

m

36

2

7

H

17

X

27

n

37

3

8

I

18

Y

28

o

38

4

9

J

19

Z

29

p

39

5

a

K

1a

a

2a

q

3a

6

b

L

1b

b

2b

r

3b

7

c

M

1c

c

2c

s

3c

8

d

N

1d

d

2d

t

3d

9

e

O

1e

e

2e

u

3e

+

f

P

1f

f

2f

v

3f

/

Таблиця 2.Педставлення шестибітних двійкових комбінацій символами ASCII (кодова таблиця basc – 64)

Якщо число кодуючи символів не кратне трьом, як заповнювач використовується символ =.

Нововведення в тілі: MIME – повідомлення.

Ми знаємо, що RFC 822 визначає тіло повідомлення як набір рядків у форматі NVT ASCII без якої-небудь структуризації тексту. Пізніше в RFC 1521 [Borenstein and Freed, 1993] були введені розширення, що дозволяють диференціювати в тілі даних різних типів. Ці розширення називаються MIME (Multipurpose Internet Mail Extensions), що перекладається як багатоцільові розширення пошти Internet.

МІМЕ не спирається на які-небудь вже описані новації ( ESMTP або заголовки, що містять від ASCII символи), а лише вводить у звертання кілька нових заголовків, дотримуючи при цьому вимоги RFC 822. Ці заголовки мають одержувача про границі розбиття тіла повідомлення за типами даних. Саме тіло незалежне від змісту як і раніше може бути передане у форматі NVT ASCII. Деякі з вже відомих нам розширень можуть бути корисними в сполученні з MIME (наприклад, команда SIZE , оскільки МІМЕ – повідомлення можуть бути досить великими, а також кодування відмінних від ASCII символів у заголовках), однак для МІМЕ вони зовсім не обов’язкові. Для обміну МІМЕ – повідомлення досить, щоб їх розуміли користувацькі агенти обох сторін. При цьому в задіяних МТА ніяких змін не потрібно.