Ввод пользователя выделен жирным шрифтом. Остальные строки представляют вывод системы. Как видите, все очень просто. Открывается ТСР-соединение. Система-отправитель представляется. Указывает адреса From и То. Передача сообщения начинается командой DATA и заканчивается строкой, содержащей только точку (.). Сеанс завершается по команде QUIT. Очень просто, с использованием лишь нескольких команд.
В RFC 821 определены и другие команды (SEND, SOML, SAML, TURN), которые являются необязательными и не получили широкого распространения в реализациях SMTP. Даже некоторые из реализованных команд не находят широкого применения. Команды HELP, VRFY и EXPN предназначены скорее для диалоговой работы, нежели для обычного взаимодействия двух систем по протоколу SMTP. Следующий фрагмент сеанса SMTP демонстрирует работу этих дополнительных команд.
HELP 214-This is Sendmail version 8.9.3+Sun 214-Topics: 214- HELO EHLO HAIL RCPT DATA 214- RSET NOOP OUIT HELP VRFY 214- EXPN VERB ETRN DSN 214-For more info use "HELP <topic>". 214-For local information contact postmaster at this site. 214 End of HELP info HELP RSET 214-RSET 214- Resets the system. 214 End of HELP info VRFY <jane> 250 <Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.> VRFY <mac> 250 Kathy McCafferty «mac» EXPN <admin> 250-<Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.> 250 David Craig «david» 250-<Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.>
Команда HELP выводит справку по командам, реализованным в системе. Команда HELP RSET запрашивает информацию по команде RSET. Откровенно говоря, эта справочная система не очень-то полезна!
Команды VRFY и EXPN более полезны, но часто блокируются из соображений безопасности, поскольку предоставляют доступ к информации пользовательских учетных записей, которая может использоваться для атаки на систему. Команда EXPN 111admin> запрашивает перечень адресов электронной почты из списка рассылки admin, и система услужливо возвращает такой список. Команда VRFY запрашивает информацию не о списке рассылки, но о конкретном пользователе. В случае команды VRFY 111mac>, mac оказывается локальной учетной записью пользователя, и для этой записи отображается определенная информация. В случае VRFY 111jane>, jane - это псевдоним из файла /etc/aliases. Возвращаемое значение - электронный адрес jane, указанный в этом файле. Три команды последнего примера интересны, но редко используются. Свою работу SMTP выполняет при помощи других команд.