2018.09 первый месяц работы здесь

Описание: Доработка почтового сервера. Внедрение EWS и, возможно, MAPI, которое бинарно.

dyvniy M
Автор темы, Администратор
Администратор
Аватара
dyvniy M
Автор темы, Администратор
Администратор
Возраст: 41
Репутация: 1
Лояльность: 1
Сообщения: 3579
Зарегистрирован: Ср, 10 октября 2012
С нами: 11 лет 5 месяцев
Профессия: Программист
Откуда: Россия, Москва
ICQ Сайт Skype ВКонтакте

#13 dyvniy » Ср, 19 сентября 2018, 12:00:14

19 сентября
Планы:
Разобраться с нэймспэйсами и прочими проблемами XML.
Чтобы маковский аутлук понимал сгенерированный ответ про иерархию папок.
Получилось:
Прочитать статьи про xmlns
https://www.artlebedev.ru/technogrette/xslt/xmlns-1/
https://www.artlebedev.ru/technogrette/xslt/xmlns-2/
Создать кучу коммитов во вложении.
И понять, что я не совсем в правильном направлении двигался.
Надо притворяться сервером так, чтобы маковский аутлук понимал.
Пакет за пакетом.
А не совершенствовать инфаструктуру,
которая может и не пригодиться.
Всё равно рабочий код будет на С++.
На питоне только прототип.
Вложения
коммиты.png
коммиты.png (24.58 КБ) 427 просмотров
Изображение

dyvniy M
Автор темы, Администратор
Администратор
Аватара
dyvniy M
Автор темы, Администратор
Администратор
Возраст: 41
Репутация: 1
Лояльность: 1
Сообщения: 3579
Зарегистрирован: Ср, 10 октября 2012
С нами: 11 лет 5 месяцев
Профессия: Программист
Откуда: Россия, Москва
ICQ Сайт Skype ВКонтакте

#14 dyvniy » Чт, 20 сентября 2018, 10:34:00

20 сентября
Планы:
Проверить, подключится ли мак по https. Это не долго.
Починить генерируемый GetFolder, чтоб работал не хуже ответа файлом.
Получилось:
Впервые полностью выполнил планы на день)
Да, по https мой сервер всё равно не работает, может ключ кривой, но разбираться некогда.
GetFolder не работал потому что я забыл добавить элемент в иерархию! Нэймспейсы были не причём.
Теперь надо сделать сохранение дерева папок в базе данных + историю.
Папки могут иметь любую (?) степень вложенности, потому что указывается айдишник родительской для всех кроме корневой.

Код: Выделить всё

#ET
import xml.etree.ElementTree as ET
= ET.parse('desktop/folders_ret.xml').getroot()
print(
x.find('{http://schemas.xmlsoap.org/soap/envelope/}Body'))
print(
x[1])
for el in x.iter('{http://schemas.xmlsoap.org/soap/envelope/}Body'):
    print(el
Вложения
folders_ret.xml
(3.7 КБ) 108 скачиваний
Изображение

dyvniy M
Автор темы, Администратор
Администратор
Аватара
dyvniy M
Автор темы, Администратор
Администратор
Возраст: 41
Репутация: 1
Лояльность: 1
Сообщения: 3579
Зарегистрирован: Ср, 10 октября 2012
С нами: 11 лет 5 месяцев
Профессия: Программист
Откуда: Россия, Москва
ICQ Сайт Skype ВКонтакте

#15 dyvniy » Пт, 21 сентября 2018, 17:32:52

21 сентября
Планы:
Добавлять функциональность с постоянными проверками в маковском аутлуке.
Захардкодить все его запросы, чтобы потом их постепенно разбирать.
Потом приступить к добавлению адекватных реализаций вида "добавить-изменить-удалить"
С хранением данных в базе.
Получилось:
Запросы захардкожены, аутлук больше не падает.
Данные надо хорошенько структурировать, прежде чем сохранять в базу.
Изображение

dyvniy M
Автор темы, Администратор
Администратор
Аватара
dyvniy M
Автор темы, Администратор
Администратор
Возраст: 41
Репутация: 1
Лояльность: 1
Сообщения: 3579
Зарегистрирован: Ср, 10 октября 2012
С нами: 11 лет 5 месяцев
Профессия: Программист
Откуда: Россия, Москва
ICQ Сайт Skype ВКонтакте

#16 dyvniy » Пн, 24 сентября 2018, 08:35:14

24 сентября
Планы:
Надо сделать папки с историей.
Не уверен что успею сегодня, но пока это единственный вариант для демо.
Будет всего две таблицы, по одной для папок и для истории.
Истории хватит 4х полей: айди, юзер, время, айди64
У папок 4 обязательных (айди, тип папки, айди64папки, айди64парента) и параметры папок, всех я пока не знаю.
Получилось:
All change keys stored in table "history".
Данные о папках сохраняются в базу и читаются из неё.
Маковский аутлук понимает папки, прочитанные из базы.
Изображение

dyvniy M
Автор темы, Администратор
Администратор
Аватара
dyvniy M
Автор темы, Администратор
Администратор
Возраст: 41
Репутация: 1
Лояльность: 1
Сообщения: 3579
Зарегистрирован: Ср, 10 октября 2012
С нами: 11 лет 5 месяцев
Профессия: Программист
Откуда: Россия, Москва
ICQ Сайт Skype ВКонтакте

#17 dyvniy » Вт, 25 сентября 2018, 11:57:52

25 сентября
Планы:
Сегодня день документации.
Надо прочесть как можно больше про EWS.
Движение наугад изжило себя, надо использовать всю имеющуюся теорию.
Наиболее важны две ветки:
https://docs.microsoft.com/en-us/exchange/client- ... e/ews-xml-elements-in-exchange
https://docs.microsoft.com/en-us/exchange/client- ... nce/ews-operations-in-exchange
error codes
https://docs.microsoft.com/en-us/exchange/client- ... service-reference/responsecode
Получилось:
Прочесть столько-то статей.
Понять как всё работает на первые 90% (надеюсь))
Узнаем в конце дня.
Прочитал меньше половины того, что хотел. Завтра продолжу.
Изображение

dyvniy M
Автор темы, Администратор
Администратор
Аватара
dyvniy M
Автор темы, Администратор
Администратор
Возраст: 41
Репутация: 1
Лояльность: 1
Сообщения: 3579
Зарегистрирован: Ср, 10 октября 2012
С нами: 11 лет 5 месяцев
Профессия: Программист
Откуда: Россия, Москва
ICQ Сайт Skype ВКонтакте

#18 dyvniy » Ср, 26 сентября 2018, 11:38:11

26 сентября
Планы:
Продолжить чтения документации.
Я уже понял, что Мне нужно как минимум два счётчика: история и промокашка.
Они оба хранятся в виде base64 little endian. Оба для начала будут простым int числом.
Какой-то из них в эксчендже содержит GUID, но я надеюсь что клиенты этого не требуют.
Получилось:
Нужно ещё понимать айди итэма и его ключ изменений.
Думаю для начала сделать айди из номера строки в таблице итэмов, закодировав его в base64.
А ключ изменений будет равен моменту истории, когда это произошло.
Итого новых таблиц пока не надо.
Тут рассказано про несколько форматов одного и того же Id, только формул его создания пока не видно
https://docs.microsoft.com/en-us/exchange/client- ... -reference/convertid-operation
Типы, только они для шарпа с бэйсиком. Неужели придётся лезть в их код ((
https://msdn.microsoft.com/en-us/library/microsoft.exchange.webservices.data(v=exchg.80).aspx
Вложения
exchangelib-master.zip
(209.32 КБ) 70 скачиваний
Изображение


Название раздела: StalkerSoft
Описание: Доработка почтового сервера. Внедрение EWS и, возможно, MAPI, которое бинарно.

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения
:) ;) :hihi: :P :hah: :haha: :angel: :( :st: :_( :cool: 8-| :beee: :ham: :rrr: :grr: :* :secret: :stupid: :music: Ещё смайлики…
   

Вернуться в «StalkerSoft»

Кто сейчас на форуме (по активности за 15 минут)

Сейчас этот раздел просматривают: 7 гостей