2015-02-02 3 views
0

У меня есть небольшая программа WinForms, которая позволяет моим пользователям создавать электронные письма для наших клиентов. Приложение имеет два варианта: один - редактор HTML для разработки электронной почты (отлично работает), а второй - для импорта шаблонов .msg или .oft. После того, как письмо будет заполнено, оно будет перемещено в папку рассылки общего доступа для ночного задания отправки макроса.Ошибка кэширования Outlook MailItem при сохранении в vb.net

Довольно простой материал!

Проблема: после того, как шаблон открыт в приложении, похоже, кэш этой версии. Если пользователь решил выйти, внесите изменения в шаблон. Outlook не получает обновления.

Примечание: Если пользователи нажимают кнопку «Предварительный просмотр», они получили правильную версию UPDATED в своем почтовом ящике. Но когда они отправляют MailItem, он берет старую версию.

Dim newItem as Outlook.MailItem = gobjOutlook.CreateItemFromTemplate(fileEmailTemplate.FileName) 

Посыл команда работает отлично newItem.Send()

Но когда я переместить его в общую папку он получает оригинальную версию где-то.

Dim addFldr As Outlook.MAPIFolder 
addFldr = StoreFLDR.Folders.Add(gobjNamespace.CurrentUser.Name & ": " & DateTime.Now.ToString()) 
newItem.Save()     
newItem.Move(addFldr) 

Я попытался заставить GC и SaveAs в другое место и перезагрузить шаблон, не повезло.

+0

Я только узнал, что файл .msg/.otf содержит исходное сообщение, если я редактирую его с помощью текстового редактора. и код .net подбирает старое (оригинальное) сообщение вместо нового отредактированного. – pom4ik

ответ

0

Я предлагаю начать с момента выпуска базовых COM-объектов мгновенно. Используйте System.Runtime.InteropServices.Marshal.ReleaseComObject, чтобы освободить объект Outlook, когда вы его закончили. Затем установите переменную Nothing в Visual Basic (null на C#), чтобы освободить ссылку на объект.

Вы можете найти полезную статью How To: Create a new Outlook message based on a template. Во всяком случае, было бы здорово увидеть ваш полный исходный код, связанный с Outlook.

+0

привет за ссылку! хорошая статья! Я освобождаю все объекты, как только я закончил с ними. Вчера я тестировал несколько вещей и выяснил, что ... Пока мое приложение закрыто (полностью), я создаю новый .otf-файл и добавляю к нему какой-то текст, например «Hello, World!». сохранить его и выйти. Затем я снова открою этот файл и изменим текст на «Hello, Hello!». Когда я открываю приложение и использую файл .otf, команда MailItem.Send отправляет обновленную версию, но когда я перемещаю файл, он перемещает оригинал «Hello, World!». текст ... Я понятия не имею, откуда он это взялся! любая помощь? – pom4ik

+0

Непонятно, какой код вы используете ... –

+0

Я редактирую сообщение с помощью Outlook 2010. и загружаю его с помощью CreateItemFromTemplate – pom4ik

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

  • Нет связанных вопросов^_^