RFC: 2060
Оригинал: Internet Message Access Protocol v.4 rev.1
Другие версии: RFC 1730, RFC 3501
Категория: Предложенный стандарт
Дата публикации:
Автор:
Перевод: Николай Малых

6.3.11. Команда APPEND

Аргументы:имя почтового ящика, [заключенный в скобки список флагов], [строка даты/времени], сообщение
Отклик:для этой команды не существует специфических откликов
Результат:OK — успешное добавление
NO — ошибка — невозможно добавить сообщение в указанный ящик, ошибка в флагах, дате или тексте
BAD — команда не поддерживается или некорректны аргументы

Команда APPEND добавляет переданный ей аргумент как новое сообщение в конце указанного почтового ящика. Для аргументов следует использовать синтаксис [RFC-822]. В сообщении допускаются 8-битовые символы. Серверы, неспособные корректно сохранять 8-битовые символы, ДОЛЖНЫ обеспечивать обратимое преобразование 8-битовых данных команды APPEND в 7-битовые с использованием транспортного кодирования содержимого [MIME-IMB]. Отметим, что эти правила могут иметь исключения — например, при использовании команды APPEND для сохранения черновиков сообщений можно опустить строки заголовка [RFC-822]. Однако использоваться такие исключения должны с осторожностью.

Если присутствует список флагов в скобках, в добавленном сообщении следует установить заданные флаги (по умолчанию флаги отсутствуют).

Если указана дата и время, для добавленного сообщения следует установить заданные значения даты и времени (по умолчанию устанавливаются текущая дата и время).

Если при добавлении произошла какая-то ошибка, почтовый ящик ДОЛЖЕН быть восстановлен в исходном виде (как до команды APPEND) — частичная добавка сообщения недопустима. Если указанного почтового ящика не существует, сервер ДОЛЖЕН возвратить сообщение об ошибке; автоматическое создание почтового ящика недопустимо. Кроме тех случаев, когда указанный почтовый ящик не может быть создан, сервер ДОЛЖЕН добавлять код [TRYCREATE] перед текстом помеченного отклика NO, намекая клиенту на возможность использования команды CREATE и повтора APPEND при удачном создании почтового ящика.

Если почтовый ящик в данный момент выбран, следует выполнить действия как при обычном получении нового сообщения. В частности, серверу следует незамедлительно уведомить клиента с помощью непомеченного отклика EXISTS. Если сервер не делает этого, клиент может ввести команду NOOP (или CHECK) после одной или нескольких команд APPEND.

Пример:  C: A003 APPEND saved-messages (\Seen) {310}
         C: Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST)
         C: From: Fred Foobar <foobar@Blurdybloop.COM>
         C: Subject: afternoon meeting
         C: To: mooch@owatagu.siam.edu
         C: Message-Id: <B27397-0100000@Blurdybloop.COM>
         C: MIME-Version: 1.0
         C: Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
         C:
         C: Hello Joe, do you think we can meet at 3:30 tomorrow?
         C:
         S: A003 OK APPEND completed

Отметим, что команда APPEND не используется для доставки почты, поскольку она не обеспечивает механизма передачи информации из конвертов [SMTP].

2007 - 2017 © Русские переводы RFC, IETF, ISOC.