Примеры.

В примерах "C:" и "S:" означают строки посылаемые клиентом и сервером соответственно и не являются частью передаваемой информации. Обратите внимание, что строки заканчиваются последовательностью CRLF (0x0D 0x0A).

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

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

В первых двух примерах клиент передаёт данные на сервер. В первом варианте с ожиданием ответа сервера в виде строки начинающейся с "+" после указания клиентом количества окетов в фигурных скобках и CRLF. Во втором, после количества окетов, перед закрывающей фигурной скобкой клиент указывает символ "+" сообщающий серверу что данные будут переданы сразу после CRLF, без ожидания подтверждения сервером.

Третий пример демонстрирует передачу данных в виде литерала от сервера клиенту. В этом случае сервер начинает отправку данных непосредственно после указания количества окетов в фигурных скобках и CRLF. Символ "+" в этом случае не используется.

Пример 7.1. MMP: Примеры отправки команд и получения ответа содержащих литералы.

C: VCARD u1@domain.invalid {761}
S: + Ready for additional command text
C: ...данные...
S: OK
C: VCARD u1@domain.invalid {761+}
C: ...данные...
S: OK
C: VCARD u1@domain.invalid
S: OK {761}
S: ...данные...

Пример сессии MMP.

Ниже описан пример сессии MMP. Клиент подключается к только что установленному серверу и аутентифицируется с именем пользователя postmaster и паролем ChangeMe. Для аутентификации используется механизм PLAIN (RFC 4616). После аутентификации пароль изменяется на my-new-password. Далее, создаётся новый пользователь с именем u1 и запрашивается список пользователей домена. После этого клиент завершает сессию.

Пример 7.2. MMP: Пример сессии.

S: * COMMAND-SET "MAIL SPAMCHK AB"
S: * STARTTLS
S: * SASL "LOGIN PLAIN CRAM-MD5"
S: * VERSION "1.0"
S: OK
C: AUTHENTICATE plain TU1QAHBvc3RtYXN0ZXIAQ2hhbmdlTWU=
S: * USER admin "postmaster@domain.invalid"
S: OK
C: SET USER postmaster PASSWORD "my-new-password"
S: OK (GOOD-PSWD) "Good password"
C: CREATE USER u1
S: OK
C: LIST USERS:domain.invalid
S: * "postmaster" 0 0 "ADMIN"
S: * "u1" 0 0 ""
S: OK
C: LOGOUT
S: BYE