|
Exchange EWS - как пометить письмо прочитанным?
|
|||
---|---|---|---|
#18+
Доброе время суток, господа форумчане. Ситуация. Делаю синхронизацию между двумя Exchange Server 2010 SP1, расположенными в двух различных доменах (назовем их внутренним и внешним доменами). Письма, календари, контакты переносятся с одного сервера на другой. Функционал реализуется при помощи EWS Managed API и частично собственно EWS. Проблема. При переносе писем при помощи методов UploadItems/ExportItems адреса в письмах при экспорте преобразуются из SMTP-маршрутизации в EX-маршрутизацию. Поэтому, после загрузки на внешний сервер письма из внутреннего, я не могу ответить на него из внешнего домена. Точнее могу, но сразу получаю отлуп, так как в письме в качестве отправителя указан эккаунт внутреннего домена, который во внешнем домене, естественно, не обнаруживается. Я изменил способ экспорта/импорта писем. При экспорте в файл записывается MimeContent письма, а при импорте создается новый объект EmailMessage, который инициализируется прочитанным из файла MimeContent-ом. После сохранения все адреса остаются SMTP-шными, и можно ответить на письмо из внешнего домена. Но теперь другая проблема. Видимо, из-за того, что я создавал новый объект EmailMessage письмо в интерфейсе OWA, например, помечено как неотправленное. Поиск в гугл по "email message unsent flag" и т.п. ни к чему не привел. Вопрос. Что необходимо сделать с новым элементом типа EmailMessage чтобы никто не считал, что его необходимо отправить? P.S. Спешу задать вопрос, а сам уезжаю на дачу, так что прошу извинить, за то, что, скорее всего, до пнд ответить не смогу. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2013, 14:12 |
|
Exchange EWS - как пометить письмо прочитанным?
|
|||
---|---|---|---|
#18+
Вот и вернулся с дачи, а ответа нет. Жаль. Да и форумов по эксу не нашел. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2013, 21:23 |
|
Exchange EWS - как пометить письмо прочитанным?
|
|||
---|---|---|---|
#18+
vagner, врядли при такой подаче, тебе ктото ответит. слишком ты ленивый. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2013, 12:14 |
|
Exchange EWS - как пометить письмо прочитанным?
|
|||
---|---|---|---|
#18+
AlexeiK, думаешь проблема в моей лени? Интересно как ты определил, что я ленивый, и даже слишком. На самом деле все гораздо проще - просто никто не знает ответа. Так вот проблема решена. Среди расширенных свойств EmailMessage нашлось свойство PidTagMessageFlags, в котором нашелся флажок mfUnsent. Только предупреждаю сразу устанавливать его надо сразу, до первого сохранения элемента, потом он становится ReadOnly. Теперь следующая проблема - события календаря. Как я уже писал был изменен способ экспорта/импорта с методов UploadItems/ExportItems на работу через MimeContent (в дальнейшем буду называть их первым и вторым вариантом). Если создать просто событие календаря без участников, все прекрасно как в первом так и во втором варианте. Проблемы начинаются, когда некий сторонний ПЯ создает событие календаря и приглашает в него синхронизируемого абонента. При работе по первому варианту - элемент синхронизируется один-в-один, и во внешнем домене событие календаря выглядит точно так же как и во внутреннем, пользователю предлагается возможность подтвердить свое участите в событии. Но, как я уже писал выше, при экспорте произошла подмена типа маршрутизации с smtp-шной на exchange-маршрутизациюю И подтверждение на участие отправленное из внешнего домена никуда не доходит. Во втором варианте (работа через MimeContent) событие во внешнем домене выглядит не так как во внутреннем: нет инициатора события и не предлагается подтвердить в нем свое участие. Видимо, при загрузке через MimeContent, происходит парсинг контента, в процессе которого проверяются все участники события и те участники, которые не находятся в местном AD отбрасываются. А задача стоит дать возможность подтвердить свое участие из внешнего домена. Ответа здесь я, скорее всего, не получу, но, возможно, напишу его сам. А потом гугл проиндексирует форум и, может быть, это кому-нибудь поможет ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2013, 13:10 |
|
Exchange EWS - как пометить письмо прочитанным?
|
|||
---|---|---|---|
#18+
vagnerИнтересно как ты определил, что я ленивый, и даже слишком. vagnerТак вот проблема решена. Среди расширенных свойств EmailMessage нашлось свойство PidTagMessageFlags вот скажи, просмотреть свойства , в msdn или где то там, сколько времени надо? вот и я про это. да эта тема уже в индексе гугла. токо проблема в том, что ты пишешь на русском все. нету же класса Календарь? вот как тут тебе помочь? может ты сам , все так делаешь? говоришь, что все сложно. но потом делаешь легкий шаг и у тебя победа. :) http://www.messageops.com/software/office-365-tools-and-utilities/messageops-exchange-ews-module/using-exportitems-and-uploaditems-cmdlets тут ваще без программинга все перекидывают с изменением домена почты. так что че :) лень, она и есть лень. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2013, 17:58 |
|
Exchange EWS - как пометить письмо прочитанным?
|
|||
---|---|---|---|
#18+
AlexeiK, и не лень тебе упрекать меня в лени? :) Это у меня первая программа для exchange, я про него до этого слышал только то, что есть такой почтовый сервер. Свойства класса EmailMessage в msdn просмотрел все. Про то, что этот флажок прячется в расширенных свойствах и подумать не мог. Потом некоторые косвенные ссылки навели меня на мысль искать этот флажок в расширенных свойствах. И совсем не лень мне было просмотреть 1078 расширенных свойств и найти этот флажок. Про русский язык я не понял. Здесь я пишу по русски, в гугле - на английском (ну, как умею). Ты о чем? За ссылку спасибо, только там в первой же строчке написано: Exchange Web Services in Exchange 2010 SP1 has a new feature that allows the export and upload of items to and from a mailbox in a serialized MAPI stream format. Подозреваю, что используются те же самые методы веб-сервиса, которые использовал и я, а значит будут ровно те же проблемы, с которыми столкнулся и я. Про разные домены по ссылке ничего не написано. Алексей, можешь помочь, помоги, пожалуйста. Попробую сформулировать вопрос короче. Можно ли сделать так, чтобы для указанного элемента (EmailMessage или Appointment) при импорте использовалась SMTP-маршрутизация? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2013, 22:18 |
|
Exchange EWS - как пометить письмо прочитанным?
|
|||
---|---|---|---|
#18+
Интересная деталь. Просматриваю адреса участников события непосредственно перед выгрузкой элемента - все адреса имеют маршрутизацию SMTP. А после выгрузки в файл (спасибо Алексею, благодаря ему я нашел программу просмотра файлов, которые получаются после операции ExportItems) все участники имеют уже муршрутизацию EX. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2013, 10:02 |
|
Exchange EWS - как пометить письмо прочитанным?
|
|||
---|---|---|---|
#18+
vagner, так вот опять. vagnerвсе адреса имеют маршрутизацию SMTP укажи, что за свойство хранит это значение, ведь свойство на английском же, да? вот , а ты на русском описываешь. сложно тут помогать тебе. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2013, 10:25 |
|
Exchange EWS - как пометить письмо прочитанным?
|
|||
---|---|---|---|
#18+
пора уже код показать чтоли. че стеснятся то. изза вот таких казусов, все так медленно идет. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2013, 10:26 |
|
Exchange EWS - как пометить письмо прочитанным?
|
|||
---|---|---|---|
#18+
Код (фрагмент, в котором считываются интересующие меня свойства) Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.
А вот что попало в лог: 10:33:18 : DBG : R-Attendee = Administrator, RT = SMTP, A = Administrator@intad.internal. 10:33:18 : DBG : R-Attendee = test 1. first, RT = SMTP, A = test1@intad.internal. 10:33:18 : DBG : epPidTagSenderAddressType = null. 10:33:18 : DBG : epPidTagSentRepresentingAddressType = null. 10:33:18 : DBG : epPidTagOriginalSenderAddressType = null. 10:33:18 : DBG : epPidTagOriginalSentRepresentingAddressType = null. После этого открываю содержимое файла, полученного после ExportItems и вижу вот такую картинку (сорри, не умею встраивать картинки) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2013, 10:42 |
|
Exchange EWS - как пометить письмо прочитанным?
|
|||
---|---|---|---|
#18+
Алексей (я правильно угадал имя? меня Александр если что), моя проблема заключается в том, что я просто наугад тыкаюсь, совершенно не имея представления о том, какие свойства за что отвечают. Исхожу только из их названий. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2013, 10:50 |
|
Exchange EWS - как пометить письмо прочитанным?
|
|||
---|---|---|---|
#18+
Небольшие изменения. Доверившись программе просмотра содержимого ExportItems неверно определил идентификаторы расширенных свойств. Новая версия лога после уточнения по документации от МС 10:59:49 : DBG : R-Attendee = Administrator, RT = SMTP, A = Administrator@intad.internal. 10:59:49 : DBG : R-Attendee = test 1. first, RT = SMTP, A = test1@intad.internal. 10:59:49 : DBG : epPidTagSenderAddressType = EX. 10:59:49 : DBG : epPidTagSentRepresentingAddressType = EX. 10:59:49 : DBG : epPidTagOriginalSenderAddressType = null. 10:59:49 : DBG : epPidTagOriginalSentRepresentingAddressType = null. К сожалению, в документации не написано можно ли изменять эти свойства. Сейчас попробую. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2013, 11:07 |
|
Exchange EWS - как пометить письмо прочитанным?
|
|||
---|---|---|---|
#18+
vagner, я не увидел метода, который непосредственно выгружает в файл , твое письмо. что ж как лениво то все тянется. тебя пока не ткнешь, ты не двинешься :) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2013, 11:43 |
|
Exchange EWS - как пометить письмо прочитанным?
|
|||
---|---|---|---|
#18+
AlexeiK, Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2013, 11:57 |
|
Exchange EWS - как пометить письмо прочитанным?
|
|||
---|---|---|---|
#18+
Получить содержимое элемента (в случае с Appointment мы попадаем на hEws.gValue.ewsExport ( iId.UniqueId ); ) Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2013, 11:58 |
|
Exchange EWS - как пометить письмо прочитанным?
|
|||
---|---|---|---|
#18+
Собственно ewsExport Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2013, 11:59 |
|
|
start [/forum/topic.php?fid=19&msg=38379702&tid=1397052]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 236ms |
total: | 359ms |
0 / 0 |