|
Outlook. Перенос обработанного сообщения и ответа на него из одних папок в другие
|
|||
---|---|---|---|
#18+
Здравствуйте, Уважаемые! Столкнулся со следующей проблемой. Из общего пула входящей почтовой информации (подчеркиваю, именно почтовой) кодом макроса, анализируя последовательно все содержимое в папке "Входящие" каким-то удивительным образом вычисляю сообщения, которые требуют определенной обработки. Успешно произведя экзекуции над этим сообщением, формирую ответ (именно ответ, а не создаю новое сообщение) и отправляю адресату. Теперь лишь хочу это полученное почтовое сообщение и сформированный и отправленный программным путем свой ответ на него перенести в специально созданные хранилища информации, например, полученное письмо переместить в папку "Входящие" -> "Тема" -> "Обработанные", а ответ в папку "Входящие" -> "Тема" -> "Отвечено" программным методом. Поскольку эти взаимосвязанные почтовые сообщения я воспринимаю как беседа, то для идентификации этих сообщений я использую свойство ConversationID. Осознавая, что появление ответа в папке "Отправленные" занимает некоторое количество времени, специально ввожу бесконечный цикл, предусматривая принудительный выход из него при выполнении определенных условий, важнейшим из которых является обнаружение сообщения с нужным свойством ConversationID. И Outlook прекрасно меня понимает, чего я от него хочу, когда я пошагово прохожу по коду, но стоит это запустить на автомате, он зацикливается, пока не приобретает истинность условия превышения заданного лимита времени. При тестировании сам на себе, обратил внимание, что пока я не получу системного уведомления, что поступило письмо в виде ответа, то макрос, код которого привожу ниже, входит в состояние рекурсии. Помогите, люди добрые, разобраться с проблемой. Объясните, чего я недопонимаю и/или не догоняю для решения своей задачи. Код: Код: vbnet 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2020, 18:27 |
|
Outlook. Перенос обработанного сообщения и ответа на него из одних папок в другие
|
|||
---|---|---|---|
#18+
а там разве нельзя для отправляемого ответного сообщения программно проверить свойство .Sent ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2020, 16:33 |
|
Outlook. Перенос обработанного сообщения и ответа на него из одних папок в другие
|
|||
---|---|---|---|
#18+
И снова здравствуйте! Всем, кто просмотрел проблему, спасибо! Блуждая по бесконечным просторам инета в поисках подсказок к решению своей задачи, я наткнулся на статью одного исследователя, которая и подсказала практически весь код (дай бог автору здоровья и детишек побольше). Ежели кому интересно, делюсь законченным решением данной задачи. Итак, есть первоначальный код: Код: vbnet 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.
Перед вызовом этого кода формируем новый класс: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Результатом метода Send является создание объекта почтового сообщения в папке "Отправленные", ввиду чего срабатывает код обработки события создания нового объекта в этой папке. Далее просто по коду... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 03:31 |
|
Outlook. Перенос обработанного сообщения и ответа на него из одних папок в другие
|
|||
---|---|---|---|
#18+
Сорри, забыл указать маленький нюанс Чтобы почтовые сообщения - входящие и исходящие себя друг друга находили по ID беседы, необходимо не забыть связующий идентификатор публично объявить в каком-либо модуле: Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 03:37 |
|
|
start [/forum/topic.php?fid=60&fpage=3&tid=2154766]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
22ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 122ms |
0 / 0 |