4.4.14 Протокол электронной почты SMTP
Главной целью протокола simple mail transfer protocol (SMTP, RFC-821, -822) служит надежная и эффективная доставка электронных почтовых сообщений. SMTP является довольно независимой субсистемой и требует только надежного канала связи. Средой для SMTP может служить отдельная локальная сеть, система сетей или весь Интернет.
SMTP базируется на следующей модели коммуникаций: в ответ на запрос пользователя почтовая программа-отправитель устанавливает двухстороннюю связь с программой-приемником (TCP, порт 25). Получателем может быть оконечный или промежуточный адресат. SMTP-команды генерируются отправителем и посылаются получателю. На каждую команду должен быть отправлен и получен отклик.
Когда канал организован, отправитель посылает команду MAIL, идентифицирую себя. Если получатель готов к приему сообщения, он посылает положительное подтверждение. Далее отправитель посылает команду RCPT, идентифицируя получателя почтового сообщения. Если получатель может принять сообщение для оконечного адресата, он выдает снова положительное подтверждение (схема формирования откликов помещена в приложении 10.14). В противном случае он отвергает получение сообщения для данного адресата, но не вообще почтовой посылки. Взаимодействие с почтовым сервером возможно и в диалоговом режиме, например:
tn dxmint.cern.ch 25 (команда telnet с использованием порта 25)
220 dxmint.cern.ch sendmail ready at sun, 9 jul 1995 11:13:57 +0200 (связь установлена, код отклика 220 является положительным)
EHLO dxmint.cern.ch | (поддерживает ли сервер расширение mime?) |
500 command unrecognized | (не поддерживает) |
HELO crnvma.cern.ch | (команда выхода на конкретный сервер) |
250 dxmint.cern.ch hello crnvma.cern.ch, pleased to meet you (отклик 250 также является положительным)
mail from:<> (так как на моей PC нет резидентной почтовой программы, я не указываю обратного адреса)
250 <>... sender ok | (команда прошла успешно) |
RCPT TO: ysemenov@cernvm.cern.ch | (указываем адрес места назначения) |
DATA | (начало ввода текста сообщения) |
nu-i-nu... | (текст сообщения) |
. | (знак конца сообщения) |
QUIT | (прерывание или завершение процедуры) |