2014-10-08 2 views
0

Я внедряю сервер IMAP, работающий с сообщениями, совместно используемыми другими системами, и из-за потребностей бизнеса пользователям не разрешается создавать или удалять сообщения или почтовые ящики через сервер IMAP.IMAP: отказать клиенту в попытке создать почтовый ящик

В нашей производственной среде, однако, мы часто видим следующие три команды происходят очень часто

15 EXAMINE "Drafts" 

16 STATUS "Drafts" 

17 CREATE "Drafts" 

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

Есть ли способ отказать клиенту в выдаче этих команд? Единственная папка, которая у нас есть, - .

+0

Звучит так, как будто клиент помнит, что создание папки (а не * создание почтового ящика *) запрещено в течение всего сеанса, но не сохраняется на будущих сеансах. Вы ничего не можете сделать, чтобы заставить клиента добавлять такие лакомые кусочки в формат файла данных. В итоге: клиент прав, вы ошибаетесь, просто откажитесь от команд. –

+0

RFC3501 не упоминает папки, они действительно называются почтовыми ящиками. Во всяком случае, я думал так же, как и вы, но legoscia ответил на мой вопрос. –

+0

Хм, я думал, что это было в приведенном выше комментарии ... Во всяком случае, клиент должен повторить попытку после каждого входа, потому что продолжать сбой после того, как разрешения были изменены, это гораздо более понятная пользователю видимость, чем повторная отправка нескольких проигнорированных команд. –

ответ

1

В принципе response code из CANNOT («Операции нарушает некоторый инвариант сервера и не может не удастся») должна получить сообщение через, хотя я подозреваю, что некоторые клиенты будут адекватно реагировать на такую ​​обратную связь.

+0

Я не знал о RFC5530. Спасибо! –

+1

Клиент должен снова выполнить команду на следующем сеансе, потому что он не может знать, обновлен ли сервер в промежуточный период. –

Смежные вопросы