2012-02-24 2 views
0

Я создал IMAP-сервер. Теперь я ищу способ заставить клиента (в моем случае iPhone) перезагрузить сообщение, потому что он изменился на стороне сервера. Кто-нибудь знает, как это сделать?Reload IMAP-Message

+0

Вы создали его на основе IMAP RFC? Если да, то не будет ли там подробностей? http://james.apache.org/server/rfclist/imap4/rfc2060.txt –

+0

@KentBoogaart: RFC 2060 устарел. Последняя версия IMAP4rev1 определена в [RFC 3501] (http://tools.ietf.org/html/rfc3501). – Douglas

ответ

0

Телу сообщения не разрешено изменять в IMAP; единственным элементом данных, который может быть изменен для существующего сообщения, является список флагов.

Если вы хотите подражать изменению тела сообщения, вы должны сообщить своему клиенту, что исходное сообщение было удалено, и новый. Вы достигаете первого путем отправки ответа EXPUNGE с исходным порядковым номером сообщения, а второй - путем отправки ответа EXISTS и/или RECENT, после чего клиент обычно выдавал команду FETCH для нового сообщения.

0

Сервер IMAP не может заставить клиента IMAP ничего делать.

Ближайшая вещь к тому, что вы ищете, это IMAP IDLE. С IMAP IDLE сервер может вытолкнуть определенные уведомления клиенту (если клиент попросил их получить). Затем клиент может делать все, что захочет, когда получает эти уведомления.