2009-05-15 2 views
3

Я пишу Outlook Addin с использованием VC/ATL. Этот конкретный addin принимает выбранные сообщения электронной почты и записывает их на диск. Он также записывает все связанные с ним вложения на диск. Затем мы читаем все в нашем приложении за пределами Outlook.Получение Outlook :: _ MailItem из Outlook :: Приложение (встроенная электронная почта)

Использование объектной модели Outlook это довольно просто, поскольку как _MailItem, так и Attachment имеют методы SaveAs. Проблема возникает, когда вложение представляет собой встроенное электронное письмо, которое мы также хотим разделить и сохранить как отдельные файлы.

В идеальном мире я могу запросить вложение для интерфейса _MailItem и просто обрабатывать его как обычную часть выделения. Но QueryInterface возвращает «без интерфейса».

Мне нужно решение, которое работает с Outlook XP (2002) через Outlook 2010. Я знаю, что в Outlook 2007 есть метод (CreateItemFromTemplate) для объекта приложения, который позволяет мне вернуть MailItem из сохраненного сообщения на диск, но это не сработает для Outlook XP/2003. Мне также нужна информация об отправителе/​​получателе.

Я также знаю, что сторонняя библиотека Redemption может сделать это с помощью расширенного MAPI. Однако мы стараемся избегать использования сторонних библиотек.

ответ

2

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

Кроме того, если вы действительно серьезно относитесь к разработке Outlook, то в конечном итоге вы будете использовать Redemption рано или поздно, так зачем ждать? Это определенно стоит больше, чем его вес автора в золоте.

+0

Только для других, ссылка на библиотеку выкупа http://www.dimastr.com/redemption/ –

+0

Mailbee.NET - это еще одна третья сторона, которая обеспечивает хороший MIME для преобразования MSG.http: // www .afterlogic.com/MailBee-нетто/электронная почта-компоненты – SliverNinja

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