Вторая цифра кода ответа smtp
Вторая цифра кода ответа обозначает категорию ошибки. Цифра 0, например, обозначает синтаксическую ошибку. Команда может быть слишком длинной, иметь неправильный аргумент или, наконец, отсутствовать в списке команд сервера.
Взглянем на сообщения с кодами 211 и 214 из табл. 15.2. Обратите внимание на то, что у обоих вторая цифра кода равна единице и оба они информационного характера. Взгляните на команды с кодами 220, 221 и 421. У всех них вторая цифра — двойка, и все они имеют дело с передачей данных или с коммуникационным каналом. Коды ответов, у которых вторая цифра равна пяти (250, 450 и 550), связаны непосредственно с почтовой системой. В настоящее время в SMTP не определены значения кодов, вторая цифра которых равна трем или четырем.
Третья цифра кода ответа SMTP
В спецификации SMTP указано, что каждая отдельная строка сообщения должна иметь собственную третью цифру в коде ответа. Рассмотрим, например, сообщения с кодами от 500 до 504. Каждое сообщение означает отдельную синтаксическую ошибку. Поскольку строки, описывающие различные виды ошибок, разные, то и коды ответа должны отличаться друг от друга. Каждое сообщение об ошибке имеет свой собственный порядковый номер в данной серии. Спецификация SMTP рекомендует, но не обязывает использовать строго заданные текстовые строки в ответах МТА-сервера.
435
SMTP-ответ бывает многострочным
Как уже отмечалось, ответ МТА-сервера может состоять из нескольких строк специального формата. Каждая строка (кроме последней) многострочного ответа начинается с кода ответа, дефиса (-), текста и комбинации CRLF. Последняя строка многострочного ответа начинается с кода ответа, за которым следует пробел:
123-Первая строка сообщения из нескольких строк 123-Код ответа, 123, не изменяется 123-1 интересный момент: сообщение может начинаться с цифры 123 Последняя строка начинается не с дефиса, а с пробела
Обратите внимание на то, что за кодом каждой строки, кроме последней, следует знак дефиса (-). Это необходимо, чтобы клиент МТА смог отличить ^троку-про-должение ответа от последней строки. За кодом ответа в последней строке всегда следует пробел.
Ограничения по размерам
В стандарте SMTP сказано, что реализации SMTP не должны ограничивать максимальную длину обрабатываемых объектов (возможно, для будущих расширений стандарта). Однако в настоящий момент SMTP ограничивает допустимые размеры следующими величинами, приведенными в табл. 15.3.
Таблица 15.3. Ограничения на размеры объектов SMTP
Объект
SMTP User
Domain Path
Command
line Reply line Text line Recipients
Максимальная длина имени пользователя: 64 символа Максимальная длина имени домена: 64 символа
Максимальная длина обратного маршрута или маршрута доставки, включая знаки пунктуации и символы-ограничители: 256 знаков
Максимальная длина командной строки, включая ключевое слово и символы CRLF: 512 знаков
Максимальная длина строки ответа, включая код ответа и символы CRLF: 512 знаков
Максимальная длина текстовой строки, включая символы CRLF: 1000 знаков
Максимальное количество получателей сообщения (за одну транзакцию): 100
436
строк
ного отве-^. Последняя следует
с
цифры
1,
следует ^строку-про-;
всегда
атъ
едущих рас-гдопусти-
liMapmpyTa
а-ограни-
1
ключевое ^ [ответа
и
^символы
р
1. • у'""'
•
I^Sa
одну
500 Line too long. (Слишком длинная строка)
501 Path too long. (Слишком длинный путь)
552 Too many recipients. (Слишком много получателей)
552 Too much mail data. (Слишком много данных в сообщении)
