Ниже начало примера SMTP транзакции, показанной в учебнике Компьютерные сети (шестое международное издание):Правильный ответ на SMTP HELO
S: 220 hamburger.edu
C: HELO crepes.fr
S: 250 Hello crepes.fr, pleased to meet you
Приставка S:
указывает, что это линия отправлено на сервере, C:
, что это строка, отправленная клиентом. На странице Wikipedia SMTP есть пример SMTP , который имеет аналогичный ответ HELO
.
Ответчик сервера на HELO
соответствует требованиям? RFC 5321 определяет ответ сервера на HELO
/EHLO
таким образом:
ehlo-ok-rsp = ("250" SP Domain [ SP ehlo-greet ] CRLF)
/("250-" Domain [ SP ehlo-greet ] CRLF
*("250-" ehlo-line CRLF)
"250" SP ehlo-line CRLF)
Как я понимаю, спецификации, ответ сервера в приведенном выше примере должен быть
250 hamburger.edu
То есть, он должен ответить 250
последовал по собственному имени хоста, а не по имени хоста клиента и, конечно же, не произвольное приветственное сообщение, показанное в этом примере .
Каков правильный ответ HELO
? Является ли Сетевой компьютер Пример неправильный?
Возможно, было правильно ответить HELO на «Домен» клиента, но Postfix и Exim оба ответят своим собственным доменом. Я согласен с тем, что разрешено отправлять произвольное сообщение в HELO, но, конечно, пример в моем вопросе «250 Hello crepes.fr, рад встретиться с вами» неверен. Кажется, что это должно быть «250 crepes.fr Привет, рад познакомиться». – cgt
Это правда, что RFC явно не указывает, какое доменное имя будет возвращено, но для меня кажется, что авторы имели в виду доменное имя клиента. О ответе в примере - вы правы, я пропустил бродячий Hello сразу после 250. Я обновлю ответ соответствующим образом. – Malt