Электронная почта как сервис глобальной сети. Протоколы передачи почты

Введение.



В сознании большинства пользователей глобальной компьютерной сети Internet сама эта сеть ассоциируется с тремя основными информационными технологиями: 



электронная почта (e-mail); 

файловые архивы FTP; 

World Wide Web. 



Каждая из этих технологий направлена на решение одной из множества задач информационного обслуживания пользователей сети. 

Электронная почта - это основное средство коммуникаций Internet. Она во многом похожа на обычную почту. С ее помощью письмо - текст, снабженный стандартным заголовком (конвертом) - доставляется по указанному адресу, который определяет местонахождение сервера и имя адресата, который имеет почтовый ящик на этом сервере, с тем, чтобы адресат мог его достать и прочесть в удобное время. 

 	Электронная почта оказалась во многом удобнее обычной, "бумажной". Не говоря уже о том, что Вам не приходится вставать из-за компьютера и идти до почтового ящика, чтобы получить или отправить письмо. Кроме того,



электронной почтой сообщение в большинстве случаев доставляется гораздо быстрее, чем обычной; 

дешевле стоит;

для отправки письма нескольким адресатам не нужно печатать его во многих экземплярах, достаточно однажды ввести текст в компьютер; 

если нужно перечитать, исправить полученное или составленное вами письмо, или использовать выдержки из него, это сделать легче, поскольку текст уже находится в машине; 

удобнее хранить большое количество писем в файле на диске, чем в ящике стола; в файле легче и искать; 

и, наконец, экономится бумага.



Это самое популярное на сегодня использование Internet у нас в стране. По самым скромным оценкам, в мире более 50 миллионов человек пользуются услугами электронной почты. В целом же, трафик электронной почты (протокол smtp) занимает только 3.7% всего сетевого. Популярность ее объясняется, как насущными требованиями, так и тем, что большинство подключений - подключения класса “Dial-Up” (посредством модема). E-mail доступна при любом виде доступа к Internet.

Электронная почта даёт возможность посылать сообщения, получать их в свой электронный почтовый ящик, отвечать на письма корреспондентов автоматически, используя их адреса, исходя из их писем, рассылать копии письма сразу нескольким получателям, переправлять полученное письмо по другому адресу, использовать вместо адресов (числовых или доменных имен) логические имена, создавать несколько подразделов почтового ящика для разного рода корреспонденции, включать в письма текстовые файлы, пользоваться системой «отражателей почты» для ведения дискуссий с группой ваших корреспондентов и т.д. Из Internet вы можете посылать почту в сопредельные сети, если вы знаете адрес соответствующего шлюза, формат его обращений и адрес в той сети.

			Используя e-mail, вы можете пользоваться ftp в асинхронном режиме. Существует множество серверов, поддерживающих такие услуги. Вы посылаете e-mail в адрес такой службы, содержащую команду этой системы, например, дать листинг какой-то директории, или переслать файл такой-то к вам, и вам приходит автоматически ответ по e-mail с этим листингом или нужным файлом. В таком режиме возможно использование почти всего набора команд обычного ftp. Существуют серверы, позволяющие получать файлы по ftp не только с них самих, но с любого ftp-сервера, который вы укажете в своем послании e-mail.. 

		E-mail дает возможность проводить телеконференции и дискуссии. Для этого используются, установленные на некоторых узловых рабочих машинах, mail reflector-ы. Вы посылаете туда сообщение с указанием подписать вас на такой-то рефлектор (дискуссию, конференцию, etc.), и вы начинаете получать копии сообщений, которые туда посылают участники обсуждения. Рефлектор почты просто по получении электронных писем рассылает их копии всем подписчикам. 

E-mail позволяет использовать в асинхронном режиме не только ftp, но и другие служб, имеющие подобные сервера, предоставляющие такие услуги. Например, сетевые новости, Archie, Whois.

При пользовании e-mail, из-за ее оперативности, может сложиться ощущение телефонной связи, но всегда следует осознавать, что это все же почта. Все сообщения письменные, поэтому почти документированы, поэтому следует придерживаться этикета, принятого в обычной корреспонденции. В дополнение к этому следует помнить, что e-mail не обладает той степенью приватности, как обычная почта, так что, если вы не пользуетесь дополнительными средствами шифрования сообщений, не следует писать в посланиях e-mail ничего, чего вам бы не хотелось увидеть выставленным на всеобщее обозрение. Анонимность также исключена: источник прослеживается без труда. 

Хотя моя курсовая работа и посвящена вопросам, касающимся электронной почты, как сервиса сети Интернет,	в её рамках просто невозможно подробно рассмотреть все её аспекты, поэтому я постараюсь осветить лишь самые основные моменты.





1. Адресация в системе электронной почты.

1.1. Структура адреса.



Электронная почта похожа на обычную, и привыкнуть пользоваться ей очень легко. Это самая эффективная из служб Интернет в смысле затрат - если вы платите Интернет-провайдеру только за время соединения, то можете вести большую переписку со всем миром всего за несколько долларов в месяц. Обычно электронная почта достигает любой точки земного шара за несколько минут. Так же как факс, она позволяет передавать не только текст, но и изображение, но при этом вы не используете междугороднюю или международную телефонную связь, и качество изображения не ухудшается при передаче. Для организаций с большим объемом факсовой переписки, особенно с заграницей, электронная почта дает мгновенную и очень весомую экономию. Большинство пользователей Интернета называют электронную почту просто почтой, а соответствующие эпитеты приберегают для традиционной почты (по-английски, например, ее часто называют snail mail - улиточная почта). 

Электронная почта не использует географическую адресацию. Для того, чтобы ваше электронное письмо дошло до своего адресата, необходимо, чтобы оно было оформлено в соответствии с международными стандартами и имело стандартизованный почтовый электронный адрес. Общепринятый формат послания определяется документом под названием "Standard for the Format of ARPA - Internet Text messages", сокращенно - Request for Comment или RFC822, и имеет заголовок и непосредственно сообщение. Заголовок выглядит приблизительно так:



	From: почтовый электронный адрес - от кого пришло послание

	To: почтовый электронный адрес - кому адресовано

	Cc: почтовые электронные адреса - кому еще направлено

	Subject: тема сообщения (произвольной формы)

Date: дата и время отправки сообщения



		Строки заголовка From:  и Date:  формируются,  как правило, автоматически, программными средствами.  Помимо этих строк заголовка, послание может содержать и другие, например:

	

	Message-Id: уникальный идентификатор послания,  присвоенный ему почтовой машиной

Reply-To: обычно  адрес абонента,  которому вы отвечаете на присланное вам письмо



		Само послание - как правило, текстовый файл достаточно произвольной формы.

		При передаче нетекстовых данных (исполняемой программы, графической информации) применяется перекодировка сообщений, которая выполняется cоответcтвующими программными средствами.

	     	Почтовый электронный адрес может иметь  разные  форматы.  Наиболее  широко распространена система формирования адреса DNS (Domain Name System),  применяемая в сети Internet.  Дешифрацию адреса и перевод его в необходимый формат осуществляют встроенные программные средства,  применяемые в данной сети электронной почты.

		С точки зрения логики, для того чтобы адрес был информативным, необходимо, чтобы в нем присутствовали:

	

	идентификатор абонента (по аналогии  -  строка  КОМУ:  на  почтовом конверте);

	почтовые координаты, определяющие его местонахождение (по аналогии - дом, улица, город, страна на почтовом конверте).

	

		Почтовый электронный адрес имеет все эти составляющие. Для того, чтобы отделить идентификатор абонента от его почтовых координат, используется значок @. @ - это разделитель, который по-русски часто называют "собакой" или "лягушкой", а по-английски это обозначает предлог "at".

		Почтовый электронный адрес в формате Internet может иметь вид:



имя_пользователя@название_компьютера,



например, ivanov@htd.mepi.msk.ru. В рассматриваемом примере ivanov -  идентификатор  абонента,  составляемый, как правило, из его фамилии, имени, отчества или псевдонима.  То, что стоит справа от знака @, называется доменом и однозначно описывает  местонахождение  абонента.  Составные части домена разделяются точками.

	Самая правая часть домена,  как правило,  обозначает код страны (географическую зону Интернета) адресата -  это домен верхнего уровня. Код страны утвержден международным стандартом ISO и состоит из двух букв. В нашем случае, ru - код России. Ниже приведён полный список географических зон Интернета:



AF Afghanistan            GH Ghana                 NF Norfolk Island

AL Albania                GI Gibraltar             MP Northern Mariana Islands

DZ Algeria                GR Greece                NO Norway

AS American Samoa         GL Greenland             OM Oman

AD Andorra                GD Grenada               PK Pakistan

AO Angola                 GP Guadeloupe            PW Palau

AI Anguilla               GU Guam                  PA Panama

AQ Antarctica             GT Guatemala             PG Papua New Guinea

AG Antigua and Barbuda    GN Guinea                PY Paraguay

AR Argentina              GW Guinea-Bissau         PE Peru

AM Armenia                GY Guyana                PH Philippines

AW Aruba                  HT Haiti                 PN Pitcairn

AU Australia              HM Heard and McDonald Islands

AT Austria                HN Honduras              PL Poland

AZ Azerbaijan             HK Hong Kong             PT Portugal

BS Bahamas                HU Hungary               PR Puerto Rico

BH Bahrain                IS Iceland               QA Qatar

BD Bangladesh             IN India                 RE Re'union

BB Barbados               ID Indonesia             RO Romania

BY Belarus                IR Iran                  RU Russian Federation

BE Belgium                IQ Iraq                  RW Rwanda

BZ Belize                 IE Ireland               SH Saint Helena

BJ Benin                  IL Israel                KN Saint Kitts and Nevis

BM Bermuda                IT Italy                 LC Saint Lucia

BT Bhutan                 JM Jamaica               PM Saint Pierre and Miquelon

BO Bolivia                JP Japan                 VC Saint Vincent and the

BA Bosnia-Hercegovina     JO Jordan                    Grenadines

BW Botswana               KZ Kazakhstan            WS Samoa

BV Bouvet Island          KE Kenya                 SM San Marino

BR Brazil                 KI Kiribati              ST Sao Tome and Principe

IO British Indian Ocean Territory                  SA Saudi Arabia

BN Brunei Darussalam      KP Korea                 SN Senegal

BG Bulgaria               KR Korea(Republic of)    SC Seychelles

BF Burkina Faso           KW Kuwait                SL Sierra Leone

BI Burundi                KG Kyrgyzstan            SG Singapore

KH Cambodia               LA Lao People's Democratic Republic

CM Cameroon               LV Latvia                SK Slovakia

CA Canada                 LB Lebanon               SI Slovenia

CV Cape Verde             LS Lesotho               SB Solomon Islands

KY Cayman Islands         LR Liberia               SO Somalia

CF Central African Republic                        ZA South Africa

TD Chad                   LY Libyan Arab Jamahiriya SU Former Soviet Union

CL Chile                  LI Liechtenstein         ES Spain

CN China                  LT Lithuania             LK Sri Lanka

CX Christmas Island       LU Luxembourg            SD Sudan

CC Cocos(Keeling) Islands MO Macau                 SR Suriname

CO Colombia               ?? Macedonia             SJ Svalbard and Jan Mayen

KM Comoros                MG Madagascar                Islands

CG Congo                  MW Malawi                SZ Swaziland

CK Cook Islands           MY Malasia               SE Sweden

CR Costa Rica             MV Maldives              CH Switzerland

CI Cote d'Ivoire          ML Mali                  SY Syria

HR Croatia                MT Malta                 TW Taiwan,Province of China

CU Cuba                   MH Marshall Islands      TJ Tajikistan

CY Cyprus                 MQ Martinique            TZ Tanzania

CZ Czech Republic         MR Mauritania            TH Thailand

DK Denmark                MU Mauritius             TG Togo

DJ Djibouti               MX Mexico                TK Tokelau

DM Dominica               FM Micronesia            TO Tonga

DO Dominican Republic     MD Moldova               TT Trinidad and Tobago

TP East Timor             MC Monaco                TN Tunisia

EC Ecuador                MN Mongolia              TR Turkey

EG Egypt                  MS Montserrat            TM Turkmenistan

SV El Salvador            MA Morocco               TC Turks and Caicos Islands

GQ Equatorial Guinea      MZ Mozambique            TV Tuvalu

EE Estonia                MM Myanmar               UG Uganda

ET Ethiopia               NA Namibia               UA Ukraine

FK Falkland Islands       NR Nauru                 AE United Arab Emirates

FO Faroe Islands          NP Nepal                 UK United Kingdom

FJ Fiji                   NL Netherlands           US United States

FI Finland                AN Netherlands Antilles  UM United States Minor Out-

FR France                 NT Neutral Zone (between Saudi Arabia & Iraq)

GF French Guiana          NC New Caledonia             lying Islands

PF French Polynesia       NZ New Zealand           UY Uruguay

TF French Southern Territories                     UZ Uzbekistan

GA Gabon                  NI Nicaragua             VU Vanuatu

GM Gambia                 NE Niger                 VA Vatican City State

GE Georgia                NG Nigeria               VE Venezuela

DE Germany                NU Niue                  VN Vietnam

VG Virgin Islands (British)

VI Virgin Islands (U.S.)

WF Wallis & Futuna Islands

EH Western Sahara

YE Yemen

YU Yugoslavia

ZR Zaire

ZM Zambia

ZW Zimbabwe



Однако в качестве домена верхнего уровня может фигурировать и обозначение сети.  Например, в США, где существуют сети, объединяющие высшие учебные заведения  или правительственные организации,  в качестве доменов верхнего уровня используются сокращения  edu  -  Educational  institutions,  gov  -  Government institutions и другие:



COM Commercial organization

EDU Educational institution

GOV Government Body or department

INT International Organization

MIL Military site

NET Networking organization

ORG Organization, miscellaneous                    



		Следующий поддомен - msk  - является однозначно определяемым внутри домена верхнего уровня. Нетрудно догадаться, что обозначает он код города - Москва.  Совокупность составных частей домена  msk.ru  называется  доменом второго уровня.  Аббревиатуры домена второго уровня определяются в соответствии с правилами, принятыми доменом верхнего уровня.

Домен третьего уровня - mepi.msk.ru.  В нашем случае домен третьего уровня включает в себя сокращенную английскую аббревиатуру Московского  инженерно-физического  Института.  Правила  образования имен внутри доменов третьего уровня личное дело доменов второго уровня.

Поддомен htd - зарегистрированное на почтовом узле имя машины,  на которой владеет почтовым ящиком упомянутый выше товарищ Ivanov.

Адрес следует писать очень внимательно - по адресу с опечатками письмо никуда не дойдет.

Электронную почту чаще всего используют следующим образом. Вы соединяетесь со своим провайдером, запускаете почтовую программу и получаете накопившуюся для вас почту. Затем вы отключаетесь от провайдера, отвечаете на полученные письма и сочиняете новые. Затем вновь подключаетесь к провайдеру и отправляете свои письма. Суммарное время соединения при этом составляет всего несколько минут. Речь идет, конечно, о модемном подключении - если у вас постоянная связь с Интернетом, то вы просто запускаете почтовую программу и не заботитесь о времени. 

Если какое-то из ваших писем не может быть сразу доставлено адресату, например, если в данный момент не работает сервер, на котором находится его почтовый ящик, то ваше письмо будет поставлено в очередь на отправку. Каждые 10-15 минут будут производиться новые попытки. Если через несколько часов ваше сообщение все еще не отправлено, вы получаете первое (предварительное) уведомление, к которому приложена копия вашего сообщения. Это уведомление имеет информационный характер и не требует от вас никакой реакции. Попытки отправить ваше сообщение продолжаются еще несколько дней. Если они по-прежнему безуспешны, то вы получаете второе (окончательное) уведомление с копией вашего сообщения. Почтовая служба устроена таким образом, что в любом случае ваше письмо не может просто бесследно исчезнуть.





1.2. Посылка электронной почты в другие сети.



Есть много компьютерных сетей, не являющихся частью Интернет, но в настоящий момент подсоединенные через "шлюзы", которые разрешают прохождение электронной почты. Вот список нескольких самых больших сетей, а также указания о том, как посылать электронную почту в эти сети и как пользователи этих сетей могут посылать свои сообщения вам. 



America Online 

Для того, чтобы послать письмо абоненту America Online, необходимо убрать все пробелы из имени пользователя и добавить "aol.com": 



пользователь@aol.com



Пользователи сети America Online, которые хотят послать сообщение вам, должны только подставить ваш адрес в Сети в поле "to:" (кому) перед составлением сообщения. 

ATTMail 

Адресуйте свое сообщение к 



пользователь@attmail.com



Пользователь ATTMail может послать сообщение вам следующим образом:



internet!домен!пользователь



Если ваш адрес - nancyr@world.std.com, то ваш корреспондент мог бы послать вам сообщение по адресу internet!world.std.com!nancyr 



Bitnet 

Пользователи Bitnet (или NetNorth в Канаде и EARN в Европе) часто имеют адреса вида: IZZY@INDVMS. Если вам повезет, то для посылки сообщения по таком адресу надо только добавить "bitnet" в конце, чтобы получилось izzy@indvms.bitnet. Иногда случается, что письмо на такой адрес вернется не доставленным, поскольку адреса Bitnet не всегда хорошо переводятся в форму Internet. Если это случится, можно послать сообщение через один из двух шлюзов Internet/Bitnet. Прежде всего, замените @ на %, чтобы получилось 



имя_пользователя%подсистема.bitnet



Затем добавьте либо @vm.marist.edu, либо @cunyvm.cuny.edu, чтобы, как в приведенном выше примере, получилось izzy%indyvms.bitnet@vm.marist.edu и izzy%indvyvms.bitnet@cunyvm.cuny.edu 

Для пользователей Bitnet задача несколько проще: они с легкостью могут посылать письмо прямо на ваш электронный адрес без всех этих глупостей. Так что посылайте им ваш адрес, и все будет в порядке. 



CompuServe 

У пользователей CompuServe адреса цифровые и имеют следующий вид: 73727,545. Чтобы послать письмо пользователю CompuServe, замените запятую точкой и добавьте "@compuserve.com"; например: 



73727.545@compuserve.com.



Имейте в виду, что некоторые пользователи CompuServe должны вносить дополнительную плату за получение почты из Internet. 

Если вы знаете пользователей CompuServe, которые хотят посылать вам сообщения, посоветуйте им обратиться к GO MAIL и создать сообщение. В области адреса вместо ввода номера CompuServe пусть они напишут ваш адрес в форме: 

>INTERNET:Ваш_Идентификатор@Ваш_Адрес



например, >INTERNET:adamg@world.std.com. Заметьте, что оба символа ">" и ":" обязательны. 



Delphi 

Для посылки сообщения пользователю Delphi адрес имеет форму 



имя_пользователя@delphi.com.



Fidonet 

Чтобы послать сообщение пользователю какой-то доски объявлений (BBS) Fidonet, нужно знать имя, под которым он регистрируется в системе и его "номер узла". Номер узла, или адрес Fidonet состоит из трех номеров и имеет вид: 1:322/190. Первый номер сообщает, в какой из нескольких больших географических зон находится BBS (1 - США и Канада, 2 - Европа и Израиль, 3 - Азиатско-Тихоокеанский регион, 4 - Южная Америка). Второй номер определяет сеть BBS, а последний номер есть "номер узла" ("FidoNode") - номер BBS в этой сети. Если у вашего корреспондента только два номера (например, 322/190), это означает, что система находится в зоне 1. 

Вы должны изменить порядок номеров и добавить к ним буквы f, n и z (первые буквы "FidoNode" (узел Fido), "network" (сеть) и "zone" (зона)). Например, приведенный выше адрес будет иметь вид 



f190.n322.z1



Теперь добавьте в конце "fidonet.org", чтобы получилось f190.n322.z1.fidonet.org. Осталось добавить "Имя.Фамилия@", чтобы получилось 



Имя.Фамилия@f190.n322.z1.fidonet.org



Отметьте наличие точки между именем и фамилией. Кроме того, в некоторых странах есть их собственные "хребтовые" системы Fidonet, которые могут менять адресацию. Например, если бы предыдущий адрес относился к Германии, то в конце надо было бы добавить "fido.de" вместо "fidonet.org." 

Обратный процесс отличается от описанного полностью. Прежде всего, человек должен выйти на "net mail" (сетевую почту) зоны своей BBS и знать адрес Fidonet своего локального шлюза Fidonet/UUCP (часто его знает системный оператор). Ваш корреспондент из Fidonet должен адресовать свое сообщение сетевой почты, указав в поле "to:" UUCP (а не ваше имя). В поле номер узла, он должен ввести номер узла шлюза Fidonet/UUCP (если система шлюза находится в той же региональной сети, что и система отправителя, то ввести надо только последний номер, например, 390 вместо 322/390). После этого первая строка сообщения должна быть вашим адресом в Internet, а за ней должна быть оставлена чистая строка. Вот теперь можно писать сообщение и посылать его. 

В связи с тем, как Fidonet организует передачу почты, доставка сообщения в любом направлении может занять день или два. Кроме того, поскольку сеть систем Fidonet - любительская, хорошим тоном считается спросить разрешения у системного оператора в тех случаях, когда вы собираетесь прогонять по почте большой объем информации. Сообщения коммерческого характера категорически воспрещаются (даже если вас о них просили). Кроме того, очень вероятно, что кроме вашего адресата сообщение прочтет еще кто-нибудь. 



GEnie 

Чтобы послать сообщение пользователю GEnie, добавьте "@genie.com" к концу имени пользователя сети GEnie, например: 



walt@genie.com



MCIMail 

Чтобы послать сообщение кому-нибудь, имеющему раздел в MCIMail, добавьте "@mcimail.com" в конце имени или адреса этого человека. Например: 



555-1212@mcimail.com

или
jsmith@mcimail.com



Заметьте, что если в сети MCIMail есть несколько подписчиков с таким именем, то вы получите сообщение от MCI с их именами и числовыми адресами. Выберите того, который вам нужен, и пошлите ваше сообщение снова. 

Чтобы послать сообщение вам из MCI, пользователь должен ввести Ваше Имя (EMS) в ответ на приглашение "To:". В ответ на приглашение EMS следует ввести  internet, а затем ваш адрес в Сети в ответ на приглашение "Mbx:". 



Peacenet

Чтобы послать сообщение пользователю, используется форма: 



имя_пользователя@igc.org



Подписчики Peacenet могут посылать сообщения по вашему обычному адресу. 



Prodigy 



Идентификатор_пользователя@prodigy.com



Имейте в виду, что пользователи Prodigy должны вносить дополнительную плату за электронную почту из Internet.





1.3. Формат почтового сообщения.



Для того, чтобы электронное письмо дошло до своего адресата, необходимо, чтобы оно было оформлено в соответствии с международными стандартами и имело стандартизованный почтовый электронный адрес. Как уже говорилось выше, общепринятый формат послания определяется документом под названием "Standard for the Format of ARPA – Internet Text messages", сокращенно - Request for Comment или RFC822, и имеет заголовок и непосредственно сообщение. 

Рассмотрим пример почтового сообщения:

 

Received: by avg386.kiae.su; Thu, 20 Dec 90 13:51:59 MSK

Received: by jumbo.kiae.su; Thu, 20 Dec 90 12:52:17 MSK

Received: from CS.ORST.EDU by fuug.fi with SMTP id AA15539 (5.65+/IDA-1.3.5 for avg@kiae.su); Thu, 20 Dec 90 08:19:05 +0200

Received: from jacobs.CS.ORST.EDU by CS.ORST.EDU (5.59/1.15) id AA19981; Wed, 19 Dec 90 22:19:59 PST

Received: by jacobs.CS.ORST.EDU (5.54/1.14) id AA02240; Wed, 19 Dec 90 23:19:35 MST

Date: Wed, 19 Dec 90 23:19:35 MST

From: Harry Brooks <brooksh@jacobs.cs.orst.edu>

Message-Id: <9012200619.AA02240@jacobs.CS.ORST.EDU> 

To: avg@kiae.su

Subject: Re: wondering if you attended?

Status: RO

gosh, i wish that you were not so far away

that we could face each other and speak of

your interests--computers, girls, nature and drinks!

no, i do not know Russian history--only the sketch and

collected memory of pieces read and heard...

was infatuated by Dostevosky

harry

//interrupted for talking to a friend--bye--more later. 



Сообщение состоит из текста, который Вы хотите передать адресату, и заголовка, который приписывается в начале сообщения, отделяется от текста пустой строкой, и содержит несколько строчек необходимой информации об этом сообщении: дату отправления, адрес, обратный адрес, тему сообщения, и другие.

Здесь первые четырнадцать строчек составляют заголовок.  Заметим, что каждая из строк заголовка имеет вид: 



название: текст



Названия строк заголовка расшифровываются так:

Received: отметка о прохождении через машину (почтовый штемпель). У нашего письма таких отметок пять, значит, по пути оно прошло через пять машин, и каждая из них обозначила, когда оно проходило.

Date: дата и время отправления письма; они указываются в стандартном формате, поскольку большинство почтовых систем умеют сортировать сообщения по времени, если Вы попросите.

From: имя отправителя и обратный адрес <отделен угловыми скобками>.

Message-Id: внутренний идентификатор сообщения; присваивается почтовой службой отправителя. Каждому письму присваивается уникальный – единственный в мире – идентификатор. Его можно использовать для ссылок на письмо, как исходящий номер.

To: адрес получателя

Subject: тема сообщения. Пометка Re: обозначает, что это сообщение – ответ (от слова reply) на другое сообщение. У исходного сообщения и у ответа строка Subject: одна и та же. При составлении автором ответа почтовая служба автоматически взяла тему из исходного сообщения. Это удобно, когда идет длинный разговор на одну тему. Вы сможете потребовать, чтобы почтовая служба отсортировала сообщения по темам, и освежить в памяти предыдущие фразы этого разговора.

Составляя сообщение, старайтесь в этой строке указать название короткое и как можно более информативное. Сообщение под заголовком вроде «А помнишь, как-то раз ты мне говорила...» не всякий станет читать.

Status: статус сообщения; Ваша почтовая служба помечает для себя, что  сообщение  Вами уже прочитано, чтобы второй раз Вам его не предложить как новое.

Бывает еще несколько видов строк заголовка. Не все они обязательно должны быть. Некоторые строки почтовые службы добавляют автоматически (Received:, Date:), другие задает сам автор письма (To:, Subject:). 

Ввести текст сообщения, сформировать заголовок можно одним из редакторов сообщений для электронной почты.

Само послание - как правило, текстовый файл достаточно произвольной формы. При передаче нетекстовых данных (исполняемой программы, графической информации) применяется перекодировка сообщений, которая выполняется соответствующими программными средствами.





2. Протоколы приёма и передачи почты.



Почтовые программы для персональных компьютеров используют разные протоколы для приема и отправки почты. При отправке почты программа взаимодействует с сервером исходящей почты, или SMTP-сервером, по протоколу SMTP. При приеме почты программа взаимодействует с севером входящей почты, или POP3-сервером по протоколу POP3. Это могут быть как разные компьютеры, так и один и тот же компьютер. Вам необходимо получить имена этих серверов у своего провайдера. Иногда для приема почты используется более современный протокол - IMAP, который позволяет, в частности, выборочно копировать пришедшие для вас письма с почтового сервера на ваш компьютер. Чтобы использовать этот протокол, необходимо, чтобы он поддерживался как вашим провайдером, так и вашей почтовой программой. 

Теперь рассмотрим эти протоколы более подробно.





2.1. Простой протокол передачи почты (SMTP).



Взаимодействие в рамках SMTP строится по принципу двусторонней связи, которая устанавливается между отправителем и получателем почтового сообщения. При этом отправитель инициирует соединение и посылает запросы на обслуживание, а получатель - отвечает на эти запросы. Фактически отправитель выступает в роли клиента, а получатель - сервера.





Рис.1 Схема взаимодействия по протоколу SMTP



Канал связи устанавливается непосредственно между отправителем и получателем сообщения. При таком взаимодействии почта достигает абонента в течение нескольких секунд после отправки.





2.1.1. Команды SMTP и их последовательность.

	

	Простой протокол передачи почты обеспечивает двухсторонний обмен сообщениями между локальным клиентом и удаленным сервером МТА. МТА-клиент шлет команды МТА-серверу, а он, в свою очередь, отвечает клиенту. Другими словами, протокол SMTP требует получать ответы от приемника команд SMTP. Обмен командами и ответами на них называется почтовой транзакцией (mail transaction). Данные передаются в формате NVT ASCII. Кроме того, команды тоже передаются в формате NVT ASCII. Команды передаются в форме ключевых слов, а не специальных символов, и указывают на необходимость совершить ту или иную операцию. В табл. 1 приведен список ключевых слов (команд), определенный в спецификации SMTP.

Таблица 1 

Команды простого протокола передачи почты (SMTP) 

Команда

Обязательна

Описание

HELO

Х

Идентифицирует модуль-передатчик для модуля-приемника (hello).

MAIL

X

Начинает почтовую транзакцию, которая завершается передачей данных в один или несколько почтовых ящиков (mail).

RCPT

Х

Идентифицирует получателя почтового сообщения (recipient).

DATA

 

Строки, следующие за этой командой, рассматриваются получателем как данные почтового сообщения. В случае SMTP, почтовое сообщение заканчивается комбинацией символов: CRLF-точка-CRLF.

RSET

 

Прерывает текущую почтовую транзакцию (reset).

NOOP

 

Требует от получателя не предпринимать никаких действий, а только выдать ответ ОК. Используется главным образом для тестирования. (No operation.)

QUIT

 

Требует выдать ответ ОК и закрыть текущее соединение.

VRFY

 

Требует от приемника подтвердить, что ее аргумент является действительным именем пользователя.

SEND

 

Начинает почтовую транзакцию, доставляющую данные на один или несколько терминалов (а не в почтовый ящик).

SOML

 

Начинает транзакцию MAIL или SEND, доставляющую данные на один или несколько терминалов или в почтовые ящики.

SAML

 

Начинает транзакцию MAIL и SEND, доставляющие данные на один или несколько терминалов и в почтовые ящики.

EXPN

 

Команда SMTP-прнемнику подтвердить, действительно ли аргумент является адресом почтовой рассылки и если да, вернуть адрес получателя сообщения (expand).

HELP

 

Команда SMTP-приемнику вернуть сообщение-справку о его командах.

TURN

 

Команда SMTP-приемнику либо сказать OK и поменяться ролями, то есть стать STMP-передатчиком, либо послать сообщение-отказ и остаться в роли SMTP-приемника.



Команды, помеченные крестиком, обязаны присутствовать в любой реализации SMTP. Остальные команды могут быть реализованы дополнительно. Каждая SMTP-команда должна заканчиваться либо пробелом (если у нее есть аргумент), либо комбинацией CRLF. SMTP способен передавать данные любого содержания (например, текст, графические, звуковые файлы). 

MTP обеспечивает двухстороннюю связь между агентами передачи почты (МТА), клиентом и сервером. Клиенты шлют команды серверу, а серверы отвечают клиентам. Однако SMTP оговаривает последовательность SMTP-команд. Лучший способ понять это — взглянуть на образец почтовой транзакции. Следующий пример демонстрирует типичную почтовую транзакцию. В примере фигурирует мистер Smith (на компьютере usc.edu), посылающий сообщения мистерам Jones, Green и Brown (на компьютере mit.edu). Агент передачи почты хоста mit.edu принимает почту для мистеров Jones и Brown, однако не знает, где расположен почтовый ящик мистера Green. 

Для целей дальнейшего повествования каждой строке присвоен номер и обозначено, кому они принадлежат - передатчику или приемнику. Текст справа от слов “RECEIVER” или “SENDER” содержит действительно передаваемые данные. Трехзначные цифровые комбинации в начале передаваемых строк обозначают коды ответа. Ответ SMTP похож на сообщения-подтверждения о доставке, поскольку появляется лишь в том случае, когда приемник получил данные.



1. RECEIVER:   220 mit.edu Simple Mail Transfer Service Ready

2. SENDER:     HELO usc.edu

3. RECEIVER:   250 mit.edu

4. SENDER:     MAIL FROM:<Smith@usc.edu>

5. RECEIVER:   250 OK

6. SENDER:     RCPT TO:<Jones@init.edu>

7. RECEIVER:   250 OK

8. SENDER:     RCPT TO:<Green@mit.edu>

9. RECEIVER:   550 No such user here

10. SENDER::   RCPT TO <Brown@mit.edu>

11. RECEIVER:  250OK

12. SENDER:    DATA

13. RECEIVER:  354 Start mail input; end with <CRLF>.<CRLF>

14. SENDER:     Blah blah blah...

15. SENDER:    ...etc. etc. etc.

16. SENDER:    .

17. RECEIVER:   250 OK

18. SENDER:     QUIT

19. RECEIVER:   221 mit.edu Service closing transmission channel

Как видно из строки 1, когда SMTP-клиент устанавливает TCP-соединение с портом протокола 25, SMTP-сервер отвечает кодом 220. Это означает, что соединение успешно установлено:

1. RECEIVER:   220 mit.edu Simple Mail Transfer Service Ready

После того, как MTA компьютеров mit.edu и usc.edu установили соединение и обменялись приветствием, первой командой должна быть команда HELO. Как указано в строке 2, SMTP-клиент передает HELO, называя имя своего компьютера в качестве аргумента. Команда HELO употребляется с аргументом, как показано ниже:

2. SENDER:     HELO usc.edu

В ответ на HELO приемник выдает код 250, сообщая передатчику о том, что команда принята и обработана:

3. RECEIVER:   250 mit.edu

После установления TCP-соединения и идентификации (при помощи HELO) SMTP-клиент приступает к почтовой транзакции. Для начала он выполняет одну из следующих команд: MAIL, SEND, SOML или SAML. В нашем примере использована команда MAIL:

4. SENDER:     MAIL FROM:Smith@usc.edu

Четыре команды, MAIL, SEND, SOML и SAML, имеют одинаковый синтаксис:

MAIL <пробел> FROM:<reverse-path> <carriage-return> line-feed>

Аргумент “обратный путь” (reverse path) указывает серверу, кому в случае ошибки отослать соответствующее сообщение. В аргументе содержится адрес источника сообщения (в нашем случае, Smith@usc.edu). После того как сервер выдал код ответа 250 (строка 5), согласившись обработать сообщение от Smith@usc.edu, необходимо указать получателя сообщения. Это делается при помощи команды RCPT. Команда RCPT имеет аргумент - имя получателя. На одну команду приходится только одно имя, поэтому, если получателей несколько, команда RCPT выдается несколько раз. В нашем примере команды RCPT выполняются в строках 6,8 и 10. Синтаксис RCPT похож на синтаксис команды MAIL:

RCPT <про6ел> TO:<forward-path> <CRLF>

Однако, в отличие от MAIL, аргумент RCPT начинается со слова “TO:”. Содержимое аргумента - путь передачи сообщения (forward path), а не обратный путь. В пути передачи сообщения указано имя почтового ящика получателя. Выдав команду RCPT, МТА-клиент ожидает получить ответ с кодом 250. Однако, в ответ на восьмую строку

8. SENDER:      RCPT TO:<Green@mit.edu>

сервер отвечает кодом 550:

9. RECEIVER:   550 No such user here



Код ответа 550 означает, что МТА не в состоянии выполнить запрос клиента, поскольку не знает, как доставить почту указанному пользователю. То есть скорее всего у мистера по фамилии Green нет почтового ящика (Green@mit.edu) на этом компьютере. В протоколе SMTP сказано, что сервер обязан информировать клиента об отсутствии почтового ящика получателя сообщения. 

После того как посланы все команды RCPT, клиент начинает передачу при помощи команды DATA. В строке 12 показано, как МТА-клиент (передатчик) высылает команду DATA, в строке 13 - как сервер отвечает кодом 354. Этот код означает, что передача данных разрешена и должна заканчиваться комбинацией CRLF-точка-CRLF (новой строкой, содержащей только точку).



12. SENDER:    DATA

13. RECEIVER:  354 Start mail input; end with <CRLF>.<CRLF>

После того как получен код 354, клиент может начать передачу данных. МТА-сервер, в свою очередь, помещает принятые данные в очереди входящих сообщений. Сервер не высылает никаких ответов до тех пор, пока не получит комбинацию CRLF-точка-CRLF от клиента, означающую конец передачи данных. Как показано в строках 16 и 17, в ответ на полученную комбинацию CRLF-точка-CRLF, сервер выдает код 250, что означает успешное окончание операции:

16. SENDER:    .

17. RECEIVER:   250 OK

Для того, чтобы закончить почтовую транзакцию, клиент, по правилам SMTP, обязан послать команду QUIT. Сервер, в свою очередь, отвечает кодом 221, который подтверждает клиенту, что соединение будет закрыто, после чего соединение действительно закрывается:

18. SENDER:     QUIT

19. RECEIVER:   221 mit.edu Service closing transmission channel

В любой момент во время транзакции клиент может использовать команды NOОР, HELP, EXPN и VRFY. В ответ на каждую команду сервер высылает клиенту определенную информацию. В зависимости от ответа клиент может предпринять определенные действия.



2.1.2. Коды ответов SMTP.

	

	В спецификации SMTP требуется, чтобы сервер отвечал на каждую команду SMТР-клиента. МТА-сервер отвечает трехзначной комбинацией цифр, называемой кодом ответа. Вместе с кодом ответа, как правило, передается одна или несколько строк текстовой информации. 

Каждая цифра в коде ответа имеет определенный смысл. Первая цифра означает, было ли выполнение команды успешно (2), неуспешно (5) или еще не закончилось (3). Простой клиент может анализировать только первую цифру в ответе сервера, и на основании ее продолжать свои действия. Вторая и третья цифры кода ответа разъясняют значение первой. В табл. 2 приведены возможные значения кодов ответа SMTP.

Таблица 2 

Коды ответа SMTP и их значение 

Код

Значение

211

Ответ о состоянии системы или помощь

214

Сообщение-подсказка (помощь)

220

<имя_домена> служба готова к работе

221

<имя_домена> служба закрывает канал связи

250

Запрошенное действие почтовой транзакции успешно завершилось

251

Данный адресат не является местным; сообщение будет передано по маршруту <forward-path>

354

Начинай передачу сообщения. Сообщение заканчивается комбинацией CRLF-точка-CRLF

421

<имя_домена> служба недоступна; соединение закрывается

450

Запрошенная команда почтовой транзакции не выполнена, так как почтовый ящик недоступен

451

Запрошенная команда не выполнена; произошла локальная ошибка при обработке сообщения

452

Запрошенная команда не выполнена; системе не хватило ресурсов

500

Синтаксическая ошибка в тексте команды; команда не опознана

501

Синтаксическая ошибка в аргументах или параметрах команды

502

Данная команда не реализована

503

Неверная последовательность команд

504

У данной команды не может быть аргументов

550

Запрошенная команда не выполнена, так как почтовый ящик и недоступен

551

Данный адресат не является местным; попробуйте передать сообщение по маршруту <forward-path>

552

Запрошенная команда почтовой транзакции прервана; дисковое пространство, доступное системе, переполнилось

553

Запрошенная команда не выполнена; указано недопустимое имя почтового ящика

554

Транзакция не выполнена

Значения первой цифры в коде ответа SMTP 

Цифра 1 означает, что сервер МТА принял команду, от клиента требуется дополнительное подтверждение. Клиент обязан послать дополнительную информацию о том, продолжать или прервать выполнение запрошенной команды. Из табл. 2 видно, что SMTP не имеет в составе таких команд, то есть коды ответа, начинающиеся с единицы, отсутствуют. В настоящее время команд SMTP, которые бы потребовали дополнительного подтверждения, нет. Разработчики ориентировались на то, что такие команды появятся, и зарезервировали для них коды, начинающиеся с цифры 1. 

Коды ответа, начинающиеся с цифры 2, означают, что сервер МТА успешно завершил выполнение команды и ожидает появления новой. Код ответа, начинающийся на 3, означает, что команда начала выполняться, но серверу необходима дополнительная информация для ее завершения. Пример такого кода - 354. В ответ на него клиент МТА должен приступить к передаче почтового сообщения. Код, начинающийся с цифры 4, означает, что сервер не принял команду, и она не выполнена. Во всех ответах серии 400 предполагается, что ошибка временная и клиент может попытаться ее исправить. Коды ответа серии 500 также сообщают, что команда не выполнена. Кроме того, клиент не должен пытаться повторить ту же команду еще раз (по крайней мере в составе той же последовательности).

Значения второй цифры кода ответа SMTP 

Вторая цифра кода ответа обозначает категорию ошибки. Цифра 0 обозначает синтаксическую ошибку. Команда может быть слишком длинной, иметь неправильный аргумент или отсутствовать в списке команд сервера. 

У сообщений с кодами 211 и 214 из табл. 2 вторая цифра кода равна единице и оба они информационного характера. У команд с кодами 220, 221 и 421 вторая цифра — двойка, и все они имеют дело с передачей данных или с коммуникационным каналом. Коды ответов, у которых вторая цифра равна пяти (250, 450 и 550) связаны непосредственно с почтовой системой. В настоящее время в SMTP не определены значения кодов, вторая цифра которых равна трем или четырем. 

Третья цифра кода ответа SMTP 

Каждая отдельная строка сообщения должна иметь собственную третью цифру в коде ответа. Рассмотрим, например, сообщения с кодами от 500 до 504. Каждое сообщение означает отдельную синтаксическую ошибку. Поскольку строки, описывающие различные виды ошибок, разные, то и коды ответа должны отличаться друг от друга. Каждое сообщение об ошибке имеет свой собственный порядковый номер в данной серии. Спецификация SMTP рекомендует, но не обязывает использовать строго заданные текстовые строки в ответах MTA-сервера. 

Ответ MTA-сервера может состоять из нескольких строк специального формата. Каждая строка (кроме последней) многострочного ответа начинается с кода ответа, дефиса (-), текста и комбинации CRLF. Последняя строка многострочного ответа начинается с кода ответа, за которым следует пробел:



123-Первая строка сообщения из нескольких строк

123-Код ответа, 123, не изменяется

123-1 сообщение может начинаться с цифры

123 Последняя строка начинается не с дефиса, а с пробела



За кодом каждой строки, кроме последней, следует знак дефиса (-). Это необходимо, чтобы клиент MTA смог отличить строку-продолжение ответа от последней строки. За кодом ответа в последней строке всегда следует пробел.





2.1.3. Ограничения по размерам.

В стандарте SMTP сказано, что реализации SMTP не должны ограничивать максимальную длину обрабатываемых объектов (возможно, для будущих ра ширений стандарта). Однако, в настоящий момент SMTP ограничивает допустимые размеры следующими величинами, приведенными в табл. 3. 

Таблица 3 

Ограничения на размеры объектов SMTP 

Объект SMTP

Ограничение

User

Максимальная длина имени пользователя: 64 символа

Domain

Максимальная длина имени домена: 64 символа

Path

Максимальная длина обратного маршрута или маршрута доставки, включая знаки пунктуации и символы-oграничители: 256 знаков

Command line

Максимальная длина командной строки, включая ключевое слово и символы CRLF: 512 знаков

Reply line

Максимальная длина строки ответа, включая код ответа и символы CRLF: 512 знаков

Text line

Максимальная длина текстовой строки, включая символы CRLF: 1000 знаков

Recipients

Максимальное количество получателей сообщения (за одну транзакцию): 100

Если клиент МТА превысил ограничения на размер передаваемой информации, сервер МТА отвечает одним из следующих кодов:

500 Line too long.

(слишком длинная строка)



501 Path too long.

(слишком длинный путь)



552 Too many recipients.

(слишком много получателей)



552 Too much mail data.

(слишком много данных в сообщении)





2.1.4. Промежуточные агенты.

	Термин “маршрут доставки” (forward-path) служит для того, чтобы отличать почтовый ящик (mailbox), имя которого абсолютно, от пути (он может быть различным), по которому следует почта. Предположим, что нужно доставить два почтовых сообщения на один и тот же сетевой компьютер. Оба сообщения имеют один и тот же адрес, однако, не обязательно будут следовать по одному и тому же маршруту. Точно так же, если на пришедшие сообщения выдаются ответы, они не обязательно будут следовать по указанному обратному маршруту (reverse-path). Как правило, конкретный маршрут для почты выбирается системным администратором. Чтобы направить почту по нужному пути, используются значения маршрута доставки и обратного маршрута, в которых указываются промежуточные агенты (relay agents). Промежуточный агент доставки - это МТА, так называемый почтовый хаб (mail hub), настроенный на передачу транзитной почты. Чтобы доставить сообщение, местный агент пользователя (UA) передает его местному МТА, который, в свою очередь, передает его промежуточному агенту МТА. В следующем примере Smith@usc.edu является почтовым ящиком, a HOST1, HOST2 и HOST3 - промежуточными агентами:

MAIL FROM:<@HOSTI, @HOST2, @HOST3:Smith@usc.edu>



Промежуточные агенты присутствуют практически во всех сетях, входящих в Internet.





Рис. 2 Почтовая система Интернет с участием промежуточных агентов.

Чтобы упростить процесс конфигурации почтовой системы, в локальной сети устанавливается один компьютер, служащий промежуточным агентом (relay host). Вся почта пользователей попадает сначала на него. Затем этот компьютер рассылает сообщения по Internet. Кроме всего прочего, такой компьютер может служить защитой фирмы от взломщиков-хакеров из Internet. Ограничивая общение локальной сети с внешним миром до уровня почты, организация сводит до минимума риск нежелательного вторжения в свои собственные системы. Кроме того, администрировать и защищать в этом случае приходится единственный компьютер. SMTP в состоянии послать сообщение непосредственно с компьютера пользователя на компьютер адресата в том случае, если между ними существует прямое почтовое соединение. Но обычно между двумя компьютерами находятся промежуточные агенты. Чтобы обеспечить доставку, в почтовом сообщении нужно указать имя компьютера-получателя и точное наименование почтового ящика. 

Аргументом команды MAIL является обратный маршрут, включающий имя источника сообщения и имена всех промежуточных агентов. Аргумент команды RCPT - маршрут доставки, содержащий имя получателя сообщения. Обратный маршрут описывает путь, который прошло сообщение, тогда как маршрут доставки идентифицирует место назначения. Обратный маршрут используется SMTP, когда нужно передать сообщение о случившейся ошибке или о невозможности доставить сообщение, когда оно уже прошло через промежуточный агент. По мере продвижения сообщения по Internet записи о его маршрутах изменяются. В обязанности системных администраторов входит правильно настраивать местные МТА на передачу сообщений промежуточному агенту, и наоборот, промежуточные агенты на доставку сообщений местным MTA. Если у промежуточного МТА изменится имя, то в конфигурации местного МТА нужно изменить имя компьютера в системе DNS. Другие параметры конфигурации не изменяются. 

Рассмотрим почтовую транзакцию между промежуточными агентами SMTP. До того как сообщение будет передано следующему указанному в маршруте (в поле ТО:) компьютеру, имя данного компьютера удаляется из маршрута доставки и добавляется в начало обратного маршрута. К тому моменту, когда сообщение достигнет пункта назначения, маршрут доставки будет содержать только имя почтового ящика.





2.2. Усовершенствования электронной почты.



Усилия по усовершенствованию электронной почты прилагаются в трех направлениях. Они затрагивают доставку (организация информации в служебных полях упаковки сообщения), обработку агентами пользователя (информация в заголовке сообщения) и тело сообщения. Наиболее интересные возможности предоставляет модификация тела почтового сообщения. Тело сообщения может переносить мультимедиа-объекты, то есть являться двоичным файлом с графической, звуковой или видеоинформацией.В этом разделе рассматриваются существующие методы кодирования таких данных в почтовых сообщениях Internet.





2.2.1. Расширения SMTP.



Расширенный SMTP (ESMTP, Extended SMTP) работает почти так же, как и обычный SMTP, однако, команда-приветствие у него другая: EHLO (Extended hello) вместо HELO. Чтобы выяснить, поддерживает ли МТА-сервер спецификацию ESMTP, МТА-клиент посылает команду EHLO. Если сервер поддерживает ESMTP, он отвечает кодом 250. Если нет, следует сообщение о синтаксической ошибке. В ответ на сообщение об ошибке, клиент может выдать обычную команду HELO и далее выполнять стандартные операции SMTP. Если сервер умеет обслуживать ESMTP, в ответ на приветствие, как правило, он выдает многострочный ответ. Каждая срока ответа содержит дополнительную команду ESMTP, с которой сервер знает, как работать. Пример реакции ESMTP-сервера в ответ на команду EHLO:



250-mail.server.com

250-EXPN

250-HELP

250 TURN

Вторая, третья и четвертая строки ответа содержат названия дополнительных команд сервера. Этот сервер обеспечивает обработку перечисленных в табл. 1 дополнительных команд. Первыми шестью расширениями SMTP являются команды: ЕXPN, HELP, TURN, SEND, SOML и SAML. Существует также расширение SIZE, позволяющее SMTP-клиенту и серверу сообщать друг другу размеры передаваемого сообщения. Если в ответе на команду EHLO присутствует ключевое слово SIZE, значит, данное расширение обрабатывается. Если клиент МТА попытается передать сообщение, превышающее предел размеров передаваемого сообщения для сервера, почтовая транзакция не состоится (закончится с ошибкой). Максимальная длина сообщения ограничивается по нескольким причинам. Основная состоит в том, что размеры жестких дисков сервера всегда ограничены, и слишком длинное сообщение может не поместиться на них. С другой стороны, свободное пространство на дисках сервера может со временем увеличиться, и это сообщение будет принято при следующей попытке. Максимальный размер сообщения следует сразу за кодом ответа 250. Например:

250 SIZE 100000000

Это пример ответа SIZE для размера в 100 Мб. Клиент MTA анализирует ответ SIZE и в случае необходимости предпринимает соответствующие действия. Дополнительно клиент может указывать длину сообщения в команде MAIL. В следующей ESMTP-команде клиент объявляет, что длина сообщения равна 500 Кб:

MAIL FROM:<happy@jamsa.com> SIZE=500000



MTA-сервер ESMTP анализирует аргумент SIZE и решает, принимать ему сообщение такой длины или сообщить об ошибке. Все это происходит еще до начала передачи. Остальные несколько расширений SMTP, в общем, подчиняются тем же правилам, что и рассмотренная только что команда SIZE. То есть команда-расширение выдается в ответе сервера по запросу клиента EHLO. Расширения можно использовать в ваших программах в соответствии со спецификацией. В некоторых случаях расширение является просто дополнительной возможностью. В других случаях расширение - дополнительный аргумент к существующей команде (как в случае рассмотренной команды SIZE). 

Местным расширением является любое поле, команда или название опции, начинающееся с буквы X.

При разработке собственных расширений почтовой системы необходимо, чтобы имена всех новых объектов начинались с буквы X. Например, пользовательский вариант декодирования тела сообщения должен называться не DECODE, как можно было бы предположить, a XDECODE. SMTP-сервер организации при этом должен включить местное расширение XDECODE в список, выдаваемый по команде EHLO (с кодом ответа 250):



250 XDECODE





2.2.2. MIME.



Система MIME - наиболее впечатляющее расширение для существующих почтовых систем. Она не предполагает вмешательства в деятельность агентов передачи почты. Два агента пользователя, понимающие MIME, могут общаться друг с другом при помощи обыкновенных МТА. В MIME к сообщению просто добавляются несколько полей заголовка: 

MIME-Version (версия MIME) 

Content-Type (тип содержимого) 

Content-Transfer-Encoding (тип кодировки содержимого) 

Content-ID (идентификатор содержимого) 

Content-Description (описание содержимого) 

Номера версий MIME меняются по мере его развития. Поле MIME-Version задает номер версии расширения MIME, которое данный агент пользователя умеет обрабатывать. Номер версии в заголовке предохраняет агента от неправильной интерпретации сообщения, в случае, если версии MIME сообщения агента не совпадают. Вот образец полей заголовка MIME-Version и Content-Type:

Mime-Version: 1.О

Content-Type: TEXT/PLAIN; charset=US-ASCII

В этом примере сообщение создано MIME версии 1.0. Тип содержимого – TEXT, подтип - PLAIN, кодовая таблица (набор символов) US-ASCII. В табл. 4 приведены существующие в данный момент типы и подтипы MIME. 

Таблица 4 

Существующие типы и подтипы MIME 

Тип

Подтип

Описание

Text

Plain

Неформатированный текст.

 

Richtext

Текст с элементами форматирования и выделениями, например с курсивом, подчеркиваниями, жирными буквами и т.д.

 

Enriched

Усовершенствованный и упрощенный вариант подтипа richtext.

Multipart

Mixed

Тело сообщения состоит из нескольких частей; обрабатывать последовательно.

 

Parallel

Тело сообщения состоит из нескольких частей; обрабатывать параллельно.

 

Digest

Дайджест электронной почты.

 

Alternative

Тело сообщения состоит из нескольких частей; все части семантически идентичны.

Message

RFC822

В теле содержится почтовое сообщение стандарта RFC 822.

 

Partial

Фрагмент почтового сообщения.

 

External-Body

Указатель на действительное почтовое сообщение (не включенное в тело данного сообщения).

Application

Octet-Stream

Произвольные двоичные данные.

 

Postscript

Программа на языке Postscript.

Image

JPEG

Формат ISO 10918.

 

GIF

Графический формат фирмы Compuserve.

Audio

Basic

Звук в 8-битном ISDN-формате mu-law.

Video

MPEG

Формат ISO11172

Поля заголовка Content-ID и Content-Description могут отсутствовать. Первое служит для идентификации MIME-содержимого электронного письма, а второе может содержать дополнительное описание. Например, если MIME-содержимым является графический образ, в поле Content-Description можно поместить описание этого образа. В табл. 5 перечислены возможные значения Content-Transfer-Encoding, доступные в настоящее время. 

Таблица 5 

Допустимые значения поля Content-Tfansfer-Encoding 

Content-Transfer-Encoding

Описание

7bit

Формат NVT-ASCII – стандартный формат почтовых сообщений.

Quoted-printable

Полезен в случае, если текст содержит небольшое количество восьмибитных символов.

Base64

Формат, в котором три байта данных упакованы в четыре шестибитных значения.

8bit

Содержит текст, в котором не все символы принадлежат стандартному набору ASCII (то есть в некоторых установлен восьмой бит).

Binary

Восьмибитные данные без символов окончания строки.



По умолчанию формат почтовых сообщений удовлетворяет кодовому набору NVT-ASCII. 8-битные агенты МТА сейчас практически отсутствуют, но как только они получат широкое распространение, вероятно, передача бинарной и текстовой информации в 8-битной кодировке возрастет. В настоящий момент для передачи 8-битной информации по 7-битным каналам Internet лучше всего использовать кодировки quoted-printable или base64.



2.2.3. Способы кодирования MIME.



Для кодирования небольшого количества 8-битных данных в 7-битный формат NVT ASCII лучше всего подходит схема quoted printable. 8-битный символ в этой схеме представляется в виде последовательности из трех символов. Последовательность всегда начинается со знака “равно” (=). Сразу за знаком “равно” следует двузначное шестнадцатиричное число, представляющее код ASCII кодируемого символа. Рассмотрим закодированную quoted printable последовательность JAMSA PRESS. Хоть она и не содержит 8-битных символов, зато позволяет хорошо проиллюстрировать принцип кодирования. Закодированное сочетание JAMSA PRESS выглядит так:



=4A=41=4D=53=41=20=50=52=45=53=53



Другими словами, буква J имеет шестнадцатиричный код ASCII 0x4A, буква А – 0х41 и т.д. Схема quoted printable передает ASCII код для каждого символа последовательности. То есть для знака А (ASCII 0x4A) передается код знака “равно” (ASCII 0x3D), код цифры 4 (ASCII 0x34) и код знака А (0х41). Данную схему довольно удобно использовать, но она утраивает общее количество информации в сообщении. Таким образом, область применения quoted printable – сообщение с небольшим количеством символов, в которых установлен старший (восьмой) бит. Основная часть сообщения должна состоять обычных семибитных символов. 

В отличие от quoted printable, кодирование Base-64 увеличивает размер сообщения всего лишь на одну треть. Каждая последовательность из трех байтов (24 бита) превращается в четыре шестибитовых (тоже 24 бита). Шестибитные символы соответствуют формату NVT ASCII и приведены в табл. 6. 

Таблица 6 

Таблица кодировки Base-64 

6 бит

ASCII

6 бит

ASCII

6 бит

ASCII

6 бит

ASCII

0

A

16

Q

32

g

48

w

1

B

17

R

33

h

49

x

2

C

18

S

34

i

50

y

3

D

19

T

35

j

51

z

4

E

20

U

36

k

52

0

5

F

21

V

37

l

53

1

6

G

22

W

38

m

54

2

7

H

23

X

39

n

55

3

8

I

24

Y

40

o

56

4

9

J

25

Z

41

p

57

5

10

K

26

a

42

q

58

6

11

L

27

b

43

r

59

7

12

M

28

c

44

s

60

8

13

N

29

d

45

t

61

9

14

O

30

e

46

u

62

+

15

P

31

f

47

v

63

/



Если количество байтов (символов) в сообщении не кратно трем, используются дополняющие символы “равно”. Например, слово KEN в формате Base-64 выглядит как “S0VO” (дополнительных символов не требуется). Слово COPE в формате Base-64 выглядит как “Q09QRQ==” (требуются два дополнительных символа-нуля). Слово JAMSA в формате Base-64 выглядит как “SkFNU0E=” (требуется один дополнительный символ-ноль).





2.2.4. Реализации метода Base-64.



Далее рассмотрен процесс кодирования слова KEN методом Base-64. Описания участвующих в процессе переменных:

BYTE cTemp, cTempHigh, cTempLow; 

BYTE cFirst6Bits, cSecond6Bits; 

BYTE cThird6Bits, cFourth6Bits; 

BYTE cFirstLetter = ‘K’; 

BYTE cSecondLetter = ‘E’; 

BYTE cThirdLetter = ‘N’;

Кодирование данных по методу Base-64

Операторы языка C/C++, реализующие способ кодирования Base-64:

cFirst5Bits = cFirthLetter >> 2; (1) 

cTemp = cFirstLetter << 4; (2A) 

cTempHigh = cTemp & 0x30; (2B) 

cTempLow = cSecondLetter >> 4; (2C) 

cSecond6Bits = cTempHigh | cTempL w; (2D) 

cTemp = cSecondLetter << 2; (3A) 

cTempHigh = cTemp & 0x3C; (3B) 

cTempLow = cThirdLetter >> 6; (3C) 

cThird6Bits = cTempHigh | c TempLow; (3D) 

cFourth6Bits = cThirdLetter & 0x3F; (4)

Первым делом биты переменной сFirstLetter (символа K) сдвигаются вправо на две позиции. Получается новый байт, содержащий первые шесть бит нашей последовательности. Далее полученное значение записывается в переменную cFirst6Bits. Дальше, чтобы получить следующее значение, нужно объединить два младших бита первого символа (K) с четырьмя старшими второго (E), т.е. нужно переместить первый и второй биты буквы K на позиции 5 и 6 – они будут старшими битами следующего шестибитного символа. Операция 2А, двоичный сдвиг влево на четыре позиции демонстрирует, как это делается. Результат сдвига запоминается во вспомогательной переменной cTemp. 

Сдвиг оператором 2А очищает позиции с 1 по 4, а биты 3 и 4 буквы K теперь расположены на позициях 7 и 8. Позиции 7 и 8 необходимо очистить, поскольку нам нужны только первые шесть битов нового символа. Для этого выполняется оператор 2В, “двоичное И”. Битовая маска 00110000 (0х30) очищает все позиции, кроме пятой и шестой (в них содержатся интересующие нас данные). Поскольку биты 5 и 6 теперь старшие для нового символа Base-64, результат помещается (оператором 2В) во вспомогательную переменную cTempHigh. 

В результате оператора 2В имеется два старших бита нового шестибитного символа. Биты с 1 по 4 должны быть взяты из второго символа. Чтобы получить четыре бита из второго символа, его содержимое сдвигается вправо на четыре позиции (оператор 2С). Результат оператора 2 С помещается во вспомогательную переменную cTempLow. Теперь в переменной cTempLow хранятся четыре младших бита нового символа, а в переменной cTempHigh — два старших. Для того чтобы их скомбинировать, мы используем оператор (2D) двоичного ИЛИ. Результат операции заносится в переменную cSecond6Bits. 

В третий шестибитный символ должны попасть четыре младших бита символа Е и два старших бита символа N. То есть нужно переместить четыре младших бита символа Е с позиций 1 - 4 на позиции 3 - 6. Для этого оператор 3А сдвигает биты влево на две позиции и помещает результат в переменную сТеmр. Сдвиг влево очищает позиции 1 и 2 для следующих данных. Кроме того, необходимо убедиться, что позиции 7 и 8 тоже свободны. Другими словами, нам нужны только биты в позициях 3 - 6. Чтобы очистить ненужные и оставить нужные позиции, выполняется оператор “двоичное И” с маской 00111100 (0х3С). Результат оператора 3В помещается в переменную cTempHigh. 

Далее два старших бита символа N необходимо сдвинуть на позиции 1 и 2. Для этого выполняется оператор ЗС сдвига вправо на 6 позиций. Результат заносится в переменную cTempLow. Теперь у нас есть четыре младших бита символа Е в переменной cTempHigh и два старших бита символа N в переменной cTempLow. Оператор 3D комбинирует значения двух этих переменных при помощи двоичного сложения (ИЛИ) и помещает новое шестибитное значение в переменную cThird6Bits. Теперь получить четвертое шестибитное значение становится просто, т.к. все биты уже стоят на своих позициях с 1 по 6 в символе N. Осталось маскировать значения битов позиций 7 и 8. Оператор 4 выполняет “двоичное И” с маской 00111111 (Ox3F) и заносит результат в переменную cFourth6Bits.

Декодирование данных по методу Base-64

Операторы языка C/C++, реализующие способ декодирования Base-64:

cTempHigh = cFirst6Bits <<2; (5A) 

cTempLow = cSecond6Bits >> 4; (5B) 

cFirstLetter = cTempHigh | cTempLow; (5C) 

cTempHigh = cSecond6Bits << 4; (6A) 

cTempLow = cThird6Bits >> 2; (6B) 

cSecondLetter = cTempHigh | cTempLow; (6C) 

cTempHigh = cThird6Bits << 6; (7A) 

cThirdLetter = cTempHigh | cFourth6Bits; (7B)

Значения полученных четырех шестибитных символов формата Base-64 хранятся в переменных cFirst6Bits, cSecond6Bits, cThird6Bits и cFourth6Bits. Операторы с 5А по 7В демонстрируют, как декодировать эти значения. Чтобы получить каждый байт (кроме третьего) в последовательности, производятся операции левого сдвига, правого сдвига и битового ИЛИ. (Для третьего символа правый сдвиг не нужен - требуются только левый сдвиг битовое ИЛИ.) Ключевой момент - знать, на сколько позиций сдвигать в каждом направлении. Шесть битов первого символа Base-64 являются старшими шестью битами первого байта данных. Их необходимо переместить с позиций 1 - 6 на позиции 3 - 8. Для этого выполняется операция сдвига влево на две позиции (оператор 5А). Поскольку эти биты старшие, результат заносится в переменную cTempHigh. Теперь требуются биты с позиций 5 и 6 из второго символа Base-64. В них занесены два младших бита первого байта данных. Сдвиг вправо на четыре позиции оператором 5В решает проблему. Результат оператора 5В заносится в переменную cTempLow. Теперь есть шесть старших битов в переменной cTempHigh и два младших бита в переменной cTempLow. Oператор 5С, битовое ИЛИ, комбинирует их значения, и в результате получается первый байт данных. 

Чтобы получить второй байт данных, выполняются практически те же операторы. Только вместо сдвига влево на два и сдвига вправо на четыре делается сдвиг влево на четыре, а вправо на два, как продемонстрировано операторами 6А и 6В. Оператор 6С, битовое ИЛИ, комбинирует полученные результаты операторов 6А и 6В и получает значение второго байта данных. Биты с 1 по 6 четвертого символа Base-64 соответствуют младшим битам третьего символа данных. Биты 7 и 8 символа данных содержатся на позициях 1 и 2 третьего символа Base-64. Поэтому значение третьего символа сдвигается вправо на шесть позиций оператором 7А. Наконец, в результате оператора 7В, битовое ИЛИ, получается третий байт данных.

Реализация алгоритма

Метод кодирования Base-64 оперирует с 24-битными величинами. Алгоритмы кодирования и декодирования также оперируют 24-битными величинами. Другими словами, хотя в предыдущем разделе и не рассматривались прототипы функций для кодирования-декодирования Base-64, предполагалось, что у них 24-битные аргументы. Алгоритм кодирования состоит из десятка очень быстрых (поскольку все они работают с двоичной информацией) операторов, преобразующих три байта данных в четыре шестибитных символа Base-64 и восьми строк с такими же быстрыми операторами, преобразующими эти символы в три 8-битных символа исходных данных.



2.3. Протокол доставки почты (POP).



Post Office Protocol (POP) - протокол доставки почты пользователю из почтового ящика. Многие концепции, принципы и понятия протокола POP аналогичны SMTP. Команды POP практически идентичны командам SMTP, отличаясь в некоторых деталях.

В настоящее время существуют две версии протокола POP – РОР2 и РОРЗ. Обе версии обладают примерно одинаковыми возможностями, однако, несовместимы друг с другом. Дело в том, что у РОР2 и РОРЗ разные номера портов протокола. Между ними отсутствует связь, аналогичная связи между SMTP и ESMTP. Протокол РОРЗ не является расширением или модификацией РОР2 - это совершенно другой протокол. РОР2 тесно связан с протоколом SMTP. Набор и структура команд РОР2 параллельны набору и структуре команд SMTP. РОРЗ, однако, разработан с учетом специфики доставки почты на персональные компьютеры и соответствующих операций. 

Раньше почтовые сообщения большинства сетей доставлялись непосредственно от одного компьютера к другому. Если пользователь часто менял рабочие компьютеры или один компьютер принадлежал нескольким пользователям, существовали определенные проблемы. В настоящее время большинство систем электронной почты доставляют сообщения не на отдельные компьютеры, а в специальные потовые ящики, находящиеся на почтовом сервере. Для того, чтобы прочитать свою почту, пользователю необходимо войти в сеть и получить доступ к почтовому серверу. Данный процесс достаточно сложен для начинающих пользователей, удаленный вход часто запрещается администраторами по соображениям безопасности, и, вдобавок ко всему, чтобы прочесть или отослать почту, нужно было пользоваться почтовым агентом самого сервера. Специальный протокол доставки почты POP и стал альтернативой всем вышеописанным проблемам.

Протокол РОРЗ

Конструкция протокола РОРЗ обеспечивает возможность пользователю войти в систему и изъять накопившуюся почту, вместо того чтобы предварительно входить в сеть. Пользователь получает доступ к РОР-серверу из любой системы в Internet. При этом он должен запустить специальный почтовый агент (UA), понимающий протокол РОРЗ. Во главе модели POP находится отдельный персональный компьютер, работающий исключительно в качестве клиента почтовой системы. В соответствии с этой моделью персональный компьютер не занимается ни доставкой, ни авторизацией сообщений для других. Также сообщения доставляются клиенту по протоколу POP, а посылаются по-прежнему при помощи SMTP. То есть на компьютере пользователя существуют два отдельных агента-интерфейса к почтовой системе - доставки (POP) и отправки (SMTP). Разработчики протокола РОРЗ называет такую ситуацию “раздельные агенты” (split UA). 

В протоколе РОРЗ оговорены три стадии процесса получения почты: авторизация, транзакция и обновление. После того как сервер и клиент РОРЗ установили соединение, начинается стадия авторизации. На стадии авторизации клиент идентифицирует себя для сервера. Если авторизация прошла успешно, сервер открывает почтовый ящик клиента и начинается стадия транзакции. В ней клиент либо запрашивает у сервера информацию (например, список почтовых сообщений), либо просит его совершить определенное действие (например, выдать почтовое сообщение). Наконец, на стадии обновления сеанс связи заканчивается. В табл. 7 перечислены команды протокола РОРЗ, обязательные для работающей в Internet реализации минимальной конфигурации.

Таблица 7 

Команды протокола POP версии 3 (для минимальной конфигурации) 

Команда

Описание

USER

Идентифицирует пользователя с указанным именем

PASS

Указывает пароль для пары клиент-сервер

QUIT

Закрывает TCP-соединение

STAT

Сервер возвращает количество сообщений в почтовом ящике плюс размер почтового ящика

LIST

Сервер возвращает идентификаторы сообщений вместе с размерами сообщений (параметром команды может быть идентификатор сообщения)

RETR

Извлекает сообщение из почтового ящика (требуется указывать аргумент-идентификатор сообщения)

DELE

Отмечает сообщение для удаления (требуется указывать аргумент-идентификатор сообщения)

NOOP

Сервер возвращает положительный ответ, но не совершает никаких действий

LAST

Сервер возвращает наибольший номер сообщения из тех, к которым ранее уже обращались

RSET

Отменяет удаление сообщения, отмеченного ранее командой DELE



В протоколе POР3 определено несколько команд, но на них дается только два ответа: +OK (позитивный, аналогичен сообщению-подтверждению АСК) и -ERR (негативный, аналогичен сообщению “не подтверждено” NAK). Оба ответа подтверждают, что обращение к серверу произошло и что он вообще отвечает на команды. Как правило, за каждым ответом следует его содержательное словесное описание. Сейчас будут рассмотрены несколько типичных сеансов РОРЗ, что даст возможность уловить последовательность команд в обмене между сервером и клиентом.

Авторизация пользователя

После того, как программа установила TCP-соединение с портом протокола РОРЗ (официальный номер 110), необходимо послать команду USER с именем пользователя в качестве параметра. Если ответ сервера будет +OK, нужно послать команду PASS с паролем этого пользователя:

CLIENT:	USER kcope

SERVER:	+OK

CLIENT:	PASS secret

SERVER:	+OK kcope's maildrop has 2 messages (320 octets)

...

(B почтовом ящике kcope есть 2 сообщения (320 байтов) ...)

Транзакции РОРЗ

После того, как стадия авторизации окончена, обмен переходит на стадию транзакции. В следующих примерах демонстрируется возможный обмен сообщениями на этой стадии. Команда STAT возвращает количество сообщений и количество байтов в сообщениях:

CLIENT:	STAT

SERVER:	+ОК 2 320

Команда LIST (без параметра) возвращает список сообщений в почтовом ящике и их размеры:

CLIENT:	LIST

SERVER:	+ОК 2 messages (320 octets)

SERVER:	1 120

SERVER:	2 200

SERVER:	. ...

Команда LIST с параметром возвращает информацию о заданном сообщении:

CLIENT:	LIST 2

SERVER:	+ОК 2 200 ...



CLIENT:	LIST 3

SERVER:	-ERR no such message, only 2 messages in maildrop

Команда TOP возвращает заголовок, пустую строку и первые десять строк тела сообщения:

CLIENT:	TOP 10

SERVER:	+OK

SERVER:	<the POP3 server sends the headers of the message,

a blank line, and the first 10 lines of the message body>

(сервер POP высылает заголовки сообщений, пустую строку и первые десять строк тела сообщения)

SERVER:	. ...



CLIENT:	TOP 100

SERVER:	-ERR no such message

Команда NOOP не возвращает никакой полезной информации, за исключением позитивного ответа сервера. Однако, позитивный ответ означает, что сервер находится в соединении с клиентом и ждет запросов:

CLIENT:	NOOP

SERVER:	+OK

Следующие примеры показывают, как сервер POP3 выполняет действия. Например, команда RETR извлекает сообщение с указанным номером и помещает его в буфер местного UA: 

CLIENT:	RETR 1

SERVER:	+OK 120 octets

SERVER:	<the POP3 server sends the entire message here>

(РОРЗ-сервер высылает сообщение целиком)



SERVER:	.

Команда DELE отмечает сообщение, которое нужно удалить:

CLIENT:	DELE 1

SERVER:	+OK message 1 deleted...

(сообщение 1 удалено)

CLIENT:	DELE 2

SERVER:	-ERR message 2 already deleted

(сообщение 2 уже удалено)

Команда RSET снимает метки удаления со всех отмеченных ранее сообщений:

CLIENT:	RSET



SERVER:	+OK maildrop has 2 messages (320 octets)

(в почтовом ящике 2 сообщения (320 байтов))

Команда QUIT закрывает соединение с сервером:

CLIENT:	QUIT

SERVER:	+OK dewey POP3 server signing off

CLIENT:	QUIT

SERVER:	+OK dewey POP3 server signing off (maildrop empty)

...

CLIENT:	QUIT

SERVER:	+OK dewey POP3 server signing off (2 messages left) ...



Отмеченные для удаления сообщения не удаляются до тех пор, пока не выдана команда QUIT и не началась стадия обновления. В любой момент в течение сеанса клиент имеет возможность выдать команду RSET, и все отмеченные для удаления сообщения будут восстановлены.





3. Организация службы электронной почты в сети Интернет.



Основную роль в системе электронной почты играют программы трех типов: 

транспортные агенты (MTA - Mail Transport Agent), 

агенты доставки (MDA - Mail Delivery Agent), 

пользовательские агенты (MUA - Mail User Agent). 

Взаимодействие этих программ и работа системы электронной почты представлены на рисунке:



Рис. 3 Организация и функционирование службы электронной почты.



Транспортный агент работает, как правило, на почтовом сервере. Транспортный агент функционирует как маршрутизатор почтовых сообщений. Его функции следующие: 

анализ и преобразование адресов и заголовков почтовых сообщений, в том числе: 

разбор списков рассылки, пседонимов, переадресации (форвардинг), 

преобразование адресов в формат другой почтовой системы, если MTA функционирует как шлюз между двумя почтовыми системами (например, между Internet Mail и Sprint Mail), 

преобразование имени почтового домена отправителя (маскарад), 

установка служебных заголовков в сообщении, отражающих его маршрут и процесс обработки; 

опрос DNS на предмет имени и адреса почтового сервера адресата сообщения; 

определение агента доставки для каждого сообщения и передача сообщения выбранному агенту доставки; 

управление очередью сообщений, отложенный и повторный вызов агентов доставки в случае невозможности немедленной доставки сообщения; 

возврат сообщений, которые по каким-либо причинам невозможно доставить по назначению. 

Агент доставки производит доставку сообщения каким-либо специфическим способом. Существует несколько стандартных типов агентов доставки:

local - письмо направлено на почтовый ящик, находящийся на этом же компьютере; доставка производится, например, добавлением содержимого сообщения в определенный файл (в Unix это файл /var/mail/почтовый_ящик). 

SMTP - письмо направлено на почтовый ящик в другом почтовом домене; доставка производится путем соединения с транспортным агентом на удаленном сервере с помощью протокола SMTP. 

prog - письмо должно быть обработано какой-либо программой; доставка производится вызовом этой программы, на вход которой подается содержимое письма. 

Вообще методы доставки (и, соответственно, агенты) могут быть разнообразными: например, сохранение письма в базе данных; пересылка письма по факсу и т.д. Выбор агента доставки для каждого конкретного письма производится транспортным агентом в соответствии с заданной конфигурацией транспортного агента и адресом назначения письма. 

Пользовательский агент является оболочкой пользователя для работы с электронной почтой, его функции: 

получение сообщений с почтового сервера; 

презентация, хранение, удаление и каталогизирование почтовых сообщений; 

создание нового сообщения и передача его транспортному агенту для дальнейшей обработки и доставки. 

Рассмотрим работу службы электронной почты на примере (Рис 3). Пусть почтовый сервер, изображенный на рисунке, имеет адрес m.vvsu.ru и сконфигурирован для приема почты с адресами типа некто@cts.vvsu.ru. Соответственно, в базе данных DNS для зоны vvsu.ru есть запись вида 

cts.vvsu.ru.   IN     MX   10 m.vvsu.ru.



Пусть также пользователь, изображенный на рисунке, имеет адрес ivanov@cts.vvsu.ru. 

Рассмотрим входящее сообщение от bg@aquarium.ru к ivanov@cts.vvsu.ru. Сообщение поступает по сети к транспортному агенту. (Для передачи сообщений транспортному агенту по сети используется протокол SMTP).  MTA, проанализировав заголовок сообщения, определяет, что оно адресовано в почтовый домен cts.vvsu.ru, который он обслуживает. В соответствии с этим выбирается агент доставки local, запускается программа этого агента и на вход ей подается текст сообщения со всеми заголовками. Агент доставки каким-то способом, не интересным для транспортного агента, производит доставку сообщения и прекращает свою работу. Транспортный агент анализирует статус выхода (exit status) программы агента доставки, по которому определяет, было ли сообщение успешно доставлено или произошла ошибка. В случае ошибки MTA формирует сообщение об ошибке, исходящее с адреса MAILER-DAEMON@m.vvsu.ru, которое будет отправлено отправителю письма (и, как правило, администратору почтового сервера по адресу postmaster@m.vvsu.ru). В случае успешного завершения работы агента доставки письмо считается доставленным получателю. 

Агент доставки local (в Unix это программа mail, запущенная как "mail -d ivanov") производит доставку методом добавления содержимого письма к файлу /var/mail/ivanov (в дальнейшем для упрощения мы будем говорить о почтовом сервере под Unix, хотя при обсуждении общей организации системы электронной почты это не имеет принципиального значения). 

Иванов (точнее, пользовательский агент Иванова) может получить доступ к своей почте двумя способами: 



Иванов работает на том же компьютере, где находится почтовый сервер. В этом случае MUA Иванова тривиальным образом считывает поступившее сообщение из файла /var/mail/ivanov и сохраняет его, в случае необходимости, куда-то в свой каталог для осуществления своих функций, описанных выше. 

Иванов работает на другом компьютере (точнее, Иванов не имеет возможности или желания работать на почтовом сервере). Эта ситуация наиболее типична для пользователей почты в организациях или сообществах. В этом случае для доступа к файлу /var/mail/ivanov через сеть используется протокол POP-3. На почтовом сервере запущена программа POP-сервер, а в MUA Иванова встроен POP-клиент. Так как протокол POP-3 работает поверх TCP/IP, нет никаких ограничений на местоположение компьютера Иванова. 



В настоящее время получает распространение протокол IMAP-4, по существу являющийся расширенной версией протокола POP-3. Он, в частности, позволяет пользовательскому агенту каталогизировать и хранить сообщения на почтовом сервере, а не на компьютере пользователя, как это происходит при использовании POP-3. Это удобно в случае, когда Иванов не имеет постоянно закрепленного за собой компьютера - например, Иванов - студент, работающий с почтой из компьютерного класса. 

Теперь рассмотрим исходящее сообщение от ivanov@cts.vvsu.ru к bg@aquarium.ru. Сообщение поступает к транспортному агенту двумя способами в зависимости от того, где работает Иванов. Если Иванов работает на почтовом сервере, то его MUA напрямую обращается к транспортному агенту и передает ему сообщение для БГ. Если же Иванов работает на другом компьютере, то его MUA связывается с транспортным агентом через сеть по протоколу SMTP. (Опять, так как протокол SMTP работает поверх TCP/IP, нет никаких ограничений на местоположение компьютера Иванова).

Получив сообщение, MTA анализирует его заголовок и определяет, что это сообщение направлено в другой почтовый домен и не попадает ни под какие особые случаи (например, не должно быть доставлено через UUCP или отослано по факсу - это все определяется конфигурацией MTA). Следовательно, для доставки этого сообщения выбирается агент SMTP, при этом MTA делает запрос в DNS на предмет того, кто является обработчиком почты для домена aquarium.ru. (DNS вернет relay.rinet.ru, IP-адрес=195.54.192.35). Этот адрес вместе с текстом сообщения будет передан агенту доставки, который по протоколу SMTP соединится с указанным адресом и таким образом отправит сообщение транспортному агенту сервера relay.rinet.ru. Если во время этой операции произошла нефатальная ошибка (например, удаленный сервер временно выключен), то агент SMTP вернется со статусом "Отложено" и MTA поставит сообщение в очередь для повторной отправки. 





4. Почтовые программы.



Существует очень много почтовых программ, значительная часть из них бесплатна. Все они довольно похожи и лишь немного различаются по своим дополнительным возможностям и по степени соответствия принятым стандартам. Наиболее распространенные программы для Windows 95/98 следующие: 



Microsoft Internet Mail - поставляется в составе операционной системы, начиная с Windows 95 версии OSR2; более свежая версия, в том числе русифицированная, может быть бесплатно скопирована с сервера www.microsoft.com. Простая и приятная в использовании, эта программа, по нашему опыту, наиболее корректно работает с письмами на русском языке. Не поддерживает IMAP. 

Microsoft Outlook Express - более навороченная программа от того же производителя, входит в состав Microsoft Office и Microsoft Internet Explorer. Может быть бесплатно скопирована с того же сервера. Программа имеет большой объем, поэтому лучше всего приобрести ее на CD-ROM или, по крайней мере, скопировать с российского сервера, например, http://tucows.rinet.ru/. Поддерживает IMAP и имеет большое количество разнообразных настроек. Не свободна от дефектов, особенно при работе с русскими сообщениями. 

Netscape Messenger - бесплатная программа фирмы Netscape, входит в состав Netscape Communicator. Все, что было сказано об Outlook Express, можно дословно повторить для Messenger. 

Eudora - почтовая программа фирмы Qualcomm. Облегченная версия (Eudora Lite), может быть бесплатно скопирована на сервере www.eudora.com, более полная версия продается за деньги. Ранее пользовалась очень большой популярностью, но с появлением бесплатных программ других производителей практически перестала развиваться. Категорически не рекомендуется для переписки по-русски. 



Когда вы впервые запускаете почтовую программу, автоматически запускается мастер по настройке, который запрашивает у вас минимально необходимую информацию: ваш адрес и название серверов входящей и исходящей почты. Также может отдельно запрашиваться имя пользователя - это та часть вашего адреса, которая находится слева от знака @. При первой проверке почты и при всех последующих проверках, если вы не пометили галочкой "Запомнить пароль", вас приглашают ввести пароль - при этом надо внимательно следить, чтобы он был введен в латинице. 

Следует также проверить остальные настройки. Если ваша программа поддерживает как POP3, так и IMAP, нужно проследить, чтобы был выбран POP3, если провайдер специально не предупредил вас об обратном. Если почтовая программа позволяет посылать письма как в формате простого текста, так и в формате HTML, желательно выбрать простой текст, как более универсальный. Если вы используете модемное соединение, то лучше отменить настройку "Посылать почту немедленно". Проверьте также, чтобы не была задействована настройка "Оставлять почту на сервере" - иначе ваш почтовый ящик на сервере у провайдера будет все время расти и со временем переполнится. Если же вы просматриваете почту с разных компьютеров, например из дома и с работы, удобно, чтобы один из них оставлял почту на сервере. На втором тогда будет накапливаться полный архив вашей переписки. Большинство остальных настроек имеет декоративное значение и зависит от ваших предпочтений. Например, ваша программа может автоматически инициировать соединение с провайдером, когда вы хотите отослать почту (не рекомендуется), автоматически разрывать соединение с провайдером, получив почту и т.д. 

Закончив конфигурировать почтовую программу, вы можете проверить, как она работает. В первую очередь следует найти две кнопки: одна позволяет проверить почту, другая - создать новое сообщение. Нажмите на вторую из них - появится новое окно. Здесь вы заполняете следующие поля: 

Кому: (To) - понятно само собой;

Копия: (Cc:) - другие адресаты;

Bcc: - кому еще, но так, чтобы про это не знал 

основной адресат;

Тема: (Subject:) - о чем ваше письмо, заполнять не обязательно, но очень желательно;

наконец, большое поле под перечисленными выше служит для самого текста письма. Текст вы можете сопроводить приложением - для этого найдите соответствующую кнопку (часто она обозначена скрепкой), которая позволит вам выбрать любой файл с вашего жесткого диска. В качестве приложения можно посылать любые файлы: программы, звуковые файлы, графические файлы и т.д. Если теперь, не закрывая почтовой программы, вы соединитесь с провайдером и нажмете на кнопку "Послать", то ваше письмо уйдет к адресату. Для начала вы можете послать письмо на свой собственный адрес. 

Теперь нажмите на кнопку, которая служит для проверки почты, и вы получите назад свое сообщение. Оно попадет в папку для входящих писем. Каждая почтовая программа после установки автоматически создает как минимум три папки: для входящих писем, для исходящих - здесь сохраняются копии того, что вы посылаете, и мусорная корзина - сюда временно поступают удаляемые письма на тот случай, если вы стерли их по ошибке. Откройте пришедшее сообщение, дважды щелкнув по нему мышью, и изучите имеющиеся здесь элементы управления. Наиболее важные кнопки здесь - это "Ответить" и "Переслать". Первая избавляет от необходимости вводить адрес того, кому вы отвечаете, а вторая позволяет переслать письмо кому-то еще. 

Все остальное в почтовой программе относится к категории удобств. Обычно вы можете создавать дополнительные папки, чтобы сортировать по ним приходящую почту, заводить одну или несколько адресных книг с часто используемыми адресами, автоматически фильтровать входящую почту (например, автоматически направлять в мусорную корзину письма с определенного адреса) и т.п. Эти дополнительные возможности стоит изучать по мере необходимости и по мере роста объема вашей переписки. Они подробно описаны в документации на вашу почтовую программу, в пункте меню "Help" (или "Справка").





5. Особенности национальной переписки.



Наверное, нет такого пользователя, который бы не сталкивался с теми или иными проблемами при переписке на русском языке. Почта подвержена этому даже больше, чем веб. Вы часто можете получить или полностью неудобочитаемое письмо, или письмо с изуродованным полем "Тема:". Впервые получив такое сообщение, пользователи склонны обвинять своего провайдера. Между тем он здесь совершенно не при чем. 

Общая причина этих неприятностей - это недостаток стандартизации, причем сразу в двух областях. Во-первых, так же как на вебе, сказывается отсутствие единой общепринятой кодовой таблицы для русского алфавита. Мы уже обсуждали это в предыдущей главе. В электронной почте чаще всего используется кодировка КОИ-8, но может использоваться и Windows CP1251, и, в редких случаях, другие кодировки. Само по себе это не страшно, потому что современные почтовые программы умеют правильно показывать сообщения в обеих кодировках, но только если отправляющая почтовая программа правильно указала использованную кодировку в заголовке письма. Eudora, например, этого не делает, что является грубым нарушением стандарта. 

Во-вторых, исходно электронная почта была рассчитана на передачу текстовых английских сообщений по 7-битным каналам связи. Впоследствии был разработан новый стандарт (MIME (см. выше)), который позволяет переписываться на других языках и допускает приложения к письмам в виде произвольных файлов. Стандарт получился сложным: для сохранения преемственности он предполагает передачу 8-битных сообщений по 7-битным каналам, и использует для этого разнообразные схемы перекодирования информации. В результате почти все почтовые программы не полностью соответствуют стандарту в каких-то мелких деталях. Например, Netscape Messenger (версия 4.5) правильно кодирует поле "Тема:", заполненное по-русски, только если оно не слишком длинное. 

По-видимому, сейчас вы не сможете полностью избежать проблем, связанных с перепиской по-русски. Но вы можете значительно их уменьшить. Во-первых, используйте современные почтовые программы, которые понимают обе распространенные русские кодировки. Хотя от привычной программы трудно отказываться, от Eudor'ы, например, следует отказаться. Посоветуйте то же самое своим корреспондентам. 

Во-вторых, пишите письма, используя кодировку КОИ-8 - она является наиболее общепринятой для почты. Не посылайте почту в формате HTML, если точно не знаете, что почтовая программа вашего адресата поддерживает этот формат. Любая почтовая программа поддерживает чисто текстовые сообщения. 

Если ваш адресат жалуется, что не может прочесть ваше письмо, вы можете еще раз послать его в виде приложения, например, в виде документа Word. Приложения, как правило, проходят без изменений. Или напишите то же самое в волапюке. 

Volapuk - eto zapis' russkogo teksta latinskimi bukvami.

Если вам пришло неудобочитаемое сообщение, попросите его автора послать его снова, и укажите, какой формат письма для вас предпочтителен. Обычно после нескольких проб и ошибок переписка налаживается и в дальнейшем происходит без проблем. 



6. Работа с почтой через браузер.



Вы можете пользоваться почтой и не имея почтовой программы. Существует большое количество серверов, которые предлагают вам завести бесплатный почтовый ящик и позволяют работать с почтой, используя только браузер. Такие службы есть как в России (mail.ru, www.tomcat.ru), так и за ее пределами (hotmail.com, mail.yahoo.com и др.). Бесплатные почтовые службы живут за счет доходов от рекламы. 

Такое использование почты имеет определенные достоинства. Вы можете легко менять провайдеров, не меняя свой адрес электронной почты. Вы можете просматривать почту с любого компьютера, подключенного к Интернету, и не тратить время на конфигурирование почтовой программы. Разумеется, у такого способа есть и свои недостатки. Вы не можете при работе с почтой через браузер минимизировать время подключения к Интернету в той мере, в какой это позволяют почтовые программы. Кроме того, общедоступные почтовые сервера часто перегружены. 

Лучше всего комбинировать достоинства обоих способов. Многие пользователи заводят почтовые ящики и у своего провайдера, и в общедоступной почтовой службе. Последний используется во время поездок, и на это время на него перенаправляется вся почта.





7. Списки рассылки, веб-форумы и группы новостей.



Одно из важных достоинств электронной почты состоит в том, что она позволяет рассылать одно и то же сообщение сразу большому числу адресатов. В простейшем случае вы перечисляете дополнительные адреса в поле Сс: (Копия:) при составлении письма. Если вам приходится то и дело посылать сообщения одной и той же группе, например, из десяти человек, такой способ становится нерациональным. Вместо этого вы можете создать в адресной книге своей почтовой программы один групповой адрес, перечислив в нем все индивидуальные адреса. При составлении очередного письма вы затем просто указываете этот групповой адрес в поле "Кому:". Это простейшая форма списка рассылки; его может создать любой пользователь. 

Однако обычно под списком рассылки подразумевается другая служба, требующая поддержки со стороны провайдера. Эта служба позволяет пользователям самим вносить себя в список рассылки (подписываться на него) и удалять себя из этого списка (прекращать подписку). Сама терминология напоминает о газетах и журналах, и действительно, списки рассылки выполняют те же функции, что и бумажные периодические издания. Только здесь нет резкой границы между журналистами и публикой, и нет строгой периодичности - списки рассылки в большей степени напоминают коллективные разговоры. Они оказались незаменимым средством для организации рабочих групп, осуществляющих какой-то проект, но могут использоваться и просто для общения с себе подобными. 

Серверное программное обеспечение для поддержки списков рассылки называется менеджером списков рассылки. Вы работаете со списком рассылки, используя два почтовых адреса: административный и обычный. Посылая короткие стандартные команды по административному адресу, вы можете подписаться на список рассылки, прекратить подписку, получить список всех подписчиков и т.п. Обычный адрес служит непосредственно для обмена сообщениями - письма на этот адрес получают все подписчики данного списка рассылки. Например, послав письмо с единственной строчкой "subscribe fadrnews" по административному адресу majordomo@fadr.msu.ru, вы подпишетесь на список рассылки под названием fadrnews. С этого момента все сообщения на адрес fadrnews@fadr.msu.ru будут поступать к вам, наряду с другими подписчиками. Полный список административных команд вы можете получить, послав письмо с единственным словом "help" по административному адресу. 

Списки рассылки бывают модерируемыми и немодерируемыми. В модерируемых списках рассылки каждое сообщение предварительно направляется на одобрение главному редактору, который называется модератором, в немодерируемых списках рассылка происходит автоматически. Подписка происходит автоматически в открытых списках рассылки и направляется на одобрение модератору в закрытых. Модератор нужен прежде всего для того, чтобы не допустить массовую рассылку сообщений рекламного характера. 

Найти наиболее интересный для вас список рассылки как правило несложно - их адреса приводятся на веб-страницах, посвященных соответствующей тематике, или находятся с помощью поисковых служб. Подпишитесь на него, и вы будете каждый день получать по почте свежую информацию, безо всяких дополнительных усилий с вашей стороны. Если вы захотите организовать собственный список рассылки, обратитесь к своему провайдеру, указав при этом, какой список вы хотите завести, - модерируемый или нет, закрытый или открытый. Большинство провайдеров оказывает такую услугу. 

Списки рассылки - это не единственный способ обмена информацией в пределах группы людей, связанных общими интересами. Группы новостей выполняют такие же функции, но используют для этого специализированное программное обеспечение и свой протокол под названием NNTP. Существуют многие тысячи групп, посвященных различным вопросам, от компьютерных протоколов то туризма. В отличие от списков рассылки, они существуют не по отдельности, а объединены в общую иерархию. Вы можете участвовать в них, используя Microsoft Internet News (входит в состав Windows 95 начиная с версии OSR2) или Netscape Messenger, который поддерживает не только почту, но и новости. Этим программам необходимо указать название сервера новостей своего провайдера. Так же как и почтой, новостями можно пользоваться при помощи браузера, используя сервер deja.com. Сообщество пользователей, которое сложилось вокруг групп новостей (Usenet), имеет давнюю историю и богатые традиции. 

Веб-форумы выполняют те же функции, что и списки рассылки, но используют для этого только браузер. Они выглядят как обычные веб-страницы, организованные таким образом, что каждый пользователь может дописывать в них свое сообщение. В качестве примера можно посмотреть веб-форум, посвященный каячному спорту (http://fadr.msu.ru/whitewater). В настоящее время веб-форумы представляют собой наиболее удобное и простое средство для групповых дискуссий и объявлений, но требуют более продолжительного подключения к Интернету по сравнению со списками рассылки.



8. Спам и почтовый этикет.



При всем удобстве, электронная почта предоставляет богатые возможности для разного рода злоупотреблений. Наиболее распространенным злоупотреблением является спам - массовая рассылка сообщений рекламного характера. Спаммеры используют как раз то достоинство электронной почты, о котором мы только что говорили, - легкость рассылки по большому числу адресов, но используют его в своих интересах. Вообще электронная почта - это воплощенная мечта рекламных агентов, она позволяет массово распространять рекламу за счет рекламополучателя, так сказать, наложенным платежом. 

До конца 80-х годов, пока Интернет охватывал в основном университеты, спам не представлял особой проблемы. По мере коммерциализации Интернета доля спама все нарастала, и в последние годы он стал настоящим бедствием. По имеющимся оценкам, спам сейчас порождает более 40% всего трафика электронной почты и групп новостей. Возникла целая индустрия, обслуживающая интересы спаммеров, торгующая списками адресов для массовой рассылки и специализированными программами. Удивительнее всего, что специалисты по распространению спама в основном считают, что делают полезное и нужное людям дело, и горячо выступают в защиту свободы слова. 

В последние несколько лет законодатели многих стран усиленно занимаются выработкой законов, направленных на борьбу со спамом. Однако законотворческий процесс, традиционно не очень быстрый, откровенно буксует в новой для себя области. Отдельные штаты США уже приняли законы о спаме, но государственных законов нет ни в США, ни в России, ни в других странах. Кроме того, законы даже государственного уровня не могут решить проблем такой международной сети, как Интернет. 

То, что не удается регулировать законами, до некоторой степени удается регулировать договорами. Большинство Интернет-провайдеров, заключая договор с пользователем, вставляют туда пункт о запрещении массовой (веерной) рассылки рекламных материалов. Если вы нарушаете этот пункт, провайдер блокирует вам доступ в Интернет, расторгает договор и не возвращает оставшиеся на вашем счету деньги. Одновременно происходят необходимые изменения в программах. Например, раньше вы могли использовать SMTP-сервер любого провайдера в качестве сервера исходящей почты. Сейчас вы чаще всего можете указывать сервер исходящей почты только своего провайдера, от других вы получите сообщение "We do not relay" ("Мы не отсылаем чужую почту"). Это делается для того, чтобы можно было однозначно определить, пользователь какого провайдера занимается рассылкой спама. Провайдеры, которые не ограничивают рассылку спама со своих серверов, попадают в черный список, и другие провайдеры перестают принимать от них почту. 

Что делать, если вы начинаете получать письма со схемами быстрого обогащения или рекламой памперсов? Лучше всего попытаться отследить источник сообщения и вежливо поставить в известность соответствующего провайдера. Для этого нужно посмотреть полный заголовок письма; в разных программах это делается по-разному. В Internet Mail, например, для этого нужно щелкнуть правой кнопкой мыши по сообщению и выбрать пункт меню "Свойства" и закладку "Подробно". Вы увидите несколько строчек, которые начинаются со слов "Received: from..." ("Получено: от..."). Каждый из серверов, через которые проходило данное сообщение, добавляет в его начало такую строчку со своим названием. Самая первая (самая нижняя) из них дает вам название сервера-отправителя. Например, если эта строчка выглядит так: 



Received: from host1.mail.ru by host2.mail.ru,



то пошлите жалобу по адресу postmaster@host1.mail.ru или root@host1.mail.ru. Не забудьте процитировать в полном объеме полученное вами письмо, вместе с полным заголовком. Возможно, вы не получите ответа, но нужные действия будут скорее всего предприняты. 

Вообще для электронной почты сложились определенные правила этикета, которые лучше соблюдать. 

Не посылайте очень больших файлов в качестве приложений. Помните, что ваш адресат, как правило, платит за то, чтобы получить ваше письмо. Если у вас быстрое подключение к Интернету, вам не доставит никаких затруднений приложить к письму графический файл объемом несколько мегабайт, например, елочку на Новый Год. Вашему адресату эта елочка доставит мало радости, если он будет получать ее по модему. Почта вообще не предназначена для обмена большими файлами, для этого есть другие способы. 

Будьте взаимно вежливы. Электронная почта делает переписку настолько простой и удобной, что это подводит некоторых пользователей. Они просто не успевают остыть, а письмо уже оказывается отосланным. Письма, написанные в запале, получили название флеймов. 

Не цитируйте в ответе все письмо, на которое вы отвечаете. Крайний случай - это когда цитируется длинное письмо, а ответ состоит из фразы "Совершенно согласен". 

И не посылайте свою рекламу в не предназначенные для этого места. Порядочные люди так не делают. 

Когда вы участвуете в электронной дискуссии, вы не видите, как улыбается или пожимает плечами ваш собеседник, чтобы показать, что он просто шутит. В электронном общении нет языка жестов. То, что вам кажется шуткой, кто-то может принять за оскорбление. Чтобы предотвратить срыв из-за таких недоразумений и бурные ссоры, у нас есть "улыбки" - "смайлики" (Smile - улыбка). Поверните голову влево и посмотрите на то, что идет за этой фразой. :-). Или просто :). Это и есть основной смайлик. Он означает, что не следует принимать всерьез некоторый предшествующий комментарий. Смайлик делается из двоеточия, дефиса и закрывающей круглой скобки. Некоторые предпочитают слово "grin" (усмешка). Иногда для краткости ставят просто букву.
Вот еще некоторые смайлики: 



;-) 

Подмигиваю;

:-( 

Поморщился;

:-O 

Поражен;

8-) 

В очках;

=|:-)= 

Эйб Линкольн.



Два последних немножко искусственны :-). 





9. Шифрование почты и цифровая подпись.



Когда вы посылаете письмо по электронной почте, вы на самом деле посылаете не письмо, а открытку. В принципе на всем пути от вашего компьютера до компьютера вашего адресата ваше сообщение могут подстерегать любопытные глаза, как частные, так и специально на это уполномоченные. 

Государство всегда проявляло большой интерес к частному общению своих граждан. Это касается любых средств связи, от почты до Интернета, и относится к любым государствам, от тоталитарных до демократических. Разница в том, что спецслужбы демократических государств не ведут себя так откровенно, но и они стремятся получить столько прав, сколько им позволяет общество. 

Например, во время Гражданской войны в США между Севером и Югом государственные органы активно стремились взять под контроль телеграфное сообщение. Телеграфные услуги тогда предоставляли многие компании, в том числе и мелкие, похожие на современных Интернет-провайдеров. Некоторые телеграфисты тогда предпочли сесть в тюрьму, но не закладывать интересы своих клиентов, и после ряда судебных процессов тайна переписки была законодательно распространена на телеграф. Во Франции до 20-х годов телефон был запрещен для использования частными лицами из опасения, что преступники получат современные средства связи. 

Интернет в принципе позволяет государственным спецслужбам создать высоко автоматизированную систему тотальной слежки, и они активно работают над этим вопросом во всех странах. Упрекать их - это примерно то же самое, что призывать хищников к вегетарианству. Тем не менее, как избирателя и налогоплательщика вас может заинтересовать, на что и насколько эффективно расходуются ваши средства. 

Одним из широко обсуждаемых сегодня инициатив ФСБ является законопроект СОРМ-2 (Система Оперативно-Розыскных Мероприятий), который предполагает создание выделенных линий связи от ФСБ к каждому провайдеру и возможность тайного копирования любой информации, без санкции суда или прокурора. SORM-2 противоречит, в частности, 23-й статье Конституции Российской Федерации, которая гарантирует тайну любой переписки. 

Если обычные письма вы привыкли посылать в конвертах, то имеет смысл ознакомиться со средствами шифрования электронной почты. Это не сделает из вас шпиона, так же как запечатывание писем не свидетельствует ни о преступном умысле, ни о мании преследования. 

Вы, наверное, знаете, что нерасшифровываемых шифров не бывает. Это было совершенно верно - но только до недавнего времени. На беду спецслужб всех стран, криптография сейчас серьезно обогнала криптоаналитику. Это означает, что, используя доступные средства, вы можете так зашифровать свое послание, что никакое ЦРУ его не расшифрует. 

Фактическим стандартом для шифрования почты стала программа под названием PGP. Она бесплатна для некоммерческого использования и сопровождается открытым исходным кодом. Ее версия для Windows легко интегрируется в почтовые программы. Автор программы - Филип Зиммерман - подвергался преследованию со стороны американских властей, потому что американское законодательство запрещает вывоз из страны сильных криптографических продуктов и приравнивает это к экспорту вооружений. Любопытно, каким образом программа была вывезена из США: для этого исходный код программы был отпечатан в виде книг. Вывоз книг не может быть запрещен по американским законам. 

PGP использует асимметричное шифрование. Это значит, что вы создаете для себя два ключа для шифрования - закрытый и открытый. Открытый ключ вы можете свободно распространять - его будут использовать для шифрования почты, направленной на ваш адрес. Для расшифровки вы будете использовать свой закрытый ключ, который необходимо хранить в секрете. Тем самым отпадает необходимость предварительного обмена ключом для шифрования, используя другие каналы, помимо Интернета. Закрытый ключ не может быть вычислен из открытого. 

Сейчас Группа по Интернет-Технологиям (IETF) утверждает PGP в качестве стандарта Интернета для шифрования почтовой переписки. Вы можете совершенно законно использовать PGP в России, если не имеете доступа к государственным тайнам. 

Не менее важно, что PGP позволяет вам подписывать свое письмо, используя ваш закрытый ключ. Ваш адресат может проверить эту подпись, используя ваш открытый ключ, причем она не только однозначно устанавливает вас как автора сообщения, но и перестает быть правильной, если документ был каким-то образом изменен в процессе передачи. Невозможно не только подделать цифровую подпись, но и впоследствии изменить содержание подписанного документа. 

Сегодня самые консервативные из государств осознали, что без Интернета они будут отставать от своих конкурентов. Интернет все больше превращается в среду для бизнеса, а это требует надежных средств шифрования и цифровых подписей. Поэтому попытки любых государственных органов взять Интернет под контроль или запретить средства шифрования выглядят довольно нелепыми и свидетельствуют о расточительности и некомпетентности. Все равно не будут работать законы, которые предписывают рекам течь вспять.





Заключение.



Основная привлекательность электронной почты - ее быстрота. Когда сеть ARPANET впервые вышла на арену, ее разработчики ожидали, что преобладающим будет трафик (то есть объем информации, передаваемой между узлами) типа "процесс-процесс". Они ошиблись. К их великому изумлению, объем электронной почты между людьми перекрыл объем связи между процессами. В то время, как снег, дождь, жара могли остановить почтовых курьеров, возможности сети ARPANET доставлять сообщения от западного побережья Соединенных Штатов к восточному в течение нескольких секунд начали революционные процессы в средствах сообщения.

Однако есть другие преимущества, которые не так широко известны. Телефон также предоставляет почти мгновенный доступ, но исследования показали, что около 75% телефонных вызовов заканчиваются безуспешно ("Я очень сожалею, но мистер Смит на совещании/уехал в командировку/вышел из комнаты."). Электронная почта имеет ту же скорость доступа, что и телефон, но не требует одновременного присутствия обоих абонентов на разных концах телефонной линии.

Удобство такого средства связи трудно переоценить. Быстрота, дешевизна, необременительность, возможность передавать информацию любого объема в любую точку мира. Неудивительно, что электронная почта приобрела такую широкую популярность среди пользователей не только сети Интернет, но и других достаточно популярных сетей – таких, как Fidonet, Bitnet и AOL.

Как уже говорилось ранее, невозможно в рамках одной курсовой работы в полной мере осветить эту проблему, но я надеюсь, что мне удалось хоть в какой-то степени дать ответы на основные вопросы – вопросы адресации, а также рассмотреть принципы организации протоколов приёма и передачи и самой службы электронной почты сети Интернет. На мой взгляд, немаловажными являются также и вопросы, касающиеся как сетевого этикета в целом, так и почтового в частности, тем более, что по мере того, как развитие сети Интернет стремится к бесконечности, уровень грамотности и самосознания большей части его обитателей, к сожалению, стремится к нулю. Страшно подумать, но безграмотность и неуважение в сети становится своего рода шармом… Но это уже тема для другой курсовой работы.





























?????? государственный ?????? университет

кафедра ??????





































Курсовая работа по дисциплине «???????»:

«Электронная почта как сервис глобальной сети. Протоколы передачи почты».







Выполнил: 



Проверила: 



























??????? – 2004.

Содержание.



Введение.



		Адресация в системе электронной почты.

		Структура адреса.

		Посылка электронной почты в другие сети.

		Формат почтового сообщения.



		Протоколы приёма и передачи почты.

2.1. 	Простой протокол передачи почты (SMTP).

2.1.1. Команды SMTP и их последовательность.

2.1.2. Коды ответов SMTP.

2.1.3. Ограничения по размерам.

2.1.4. Промежуточные агенты.

2.2. 	   Усовершенствования электронной почты.

2.2.1. Расширения SMTP.

2.2.2. MIME.

2.2.3. Способы кодирования MIME.

2.2.4. Реализация метода Base-64.

2.3. 	   Протокол доставки почты (POP).



		Организация службы электронной почты в сети Интернет.



		Почтовые программы.



		Особенности национальной переписки.



		Работа с почтой через браузер.



		Списки рассылки, веб-форумы и группы новостей.



		Спам и почтовый этикет.



		Шифрование почты и цифровая подпись.



Заключение.



Список литературы.













Список литературы.





Эви Немет, Гарт Снайдер и др. UNIX: руководство системного администратора.–К.:BHV, 1996



Персональные компьютеры в сетях TCP/IP – Киев, издательская группа BHV, 1997



Э.А. Якубайтис, «Информатика-электроника-сети». М., «Финансы и статистика», 1989



On-line manual pages for Linux.



ftp://ftp.relcom.ru/pub/internet/faq/geozone4.zip - географические зоны сети Интернет.



www.citmgu.ru – сервер информационных технологий.



www.athena.vvsu.ru – курс «Технологии Интернет».