Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание сообщения из файла .msg в Outook API, Как создать объект MailItem из .msg файл 
:(
    Опции темы
Cheklov
Дата 20.8.2007, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 14.2.2007

Репутация: нет
Всего: нет



У меня есть файл формата Outlook Message .msg. Как с помощью Outlook Object Library API создать объект Outlook._MailItem.
PM MAIL   Вверх
shmarov
Дата 21.8.2008, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 15.6.2007
Где: 1001101 region

Репутация: 1
Всего: 1



Бъюсь сейчас со схожей проблемой - есть файл .msg, нужно вытащить кто куда когда кому чего писал и какие приложил файлы. Если чего нарою с Outlook Object Library API - отпишу.
PM MAIL   Вверх
shmarov
Дата 22.8.2008, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 15.6.2007
Где: 1001101 region

Репутация: 1
Всего: 1



В общем вот чего мне удалось в итоге накопать:

Код

Outlook.ApplicationClass _app = new Outlook.ApplicationClass();
Outlook.MailItem _mail = 
       (Outlook.MailItem)_app.CreateItemFromTemplate(@"C:\Untitled.msg", 
       _app.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox));


Нет правда пока 100% уверенности в том, что созданный элемент полностью соответствует исходному сообщению. Не балуют ребята нормальным описанием SDK в последнее время. Наверное как Apple решили дать возможность зарабатывать на издании книг) Нашел ссылку на pdf-описание этого VSTO, правда то что мне удалось найти оказалось не полным и соответственно бесполезным. 
Если интересно - книга называется так: Visual Studio Tools for Office Using C# with Word, Excel, Outlook, and InfoPath.

Проблема только в том что мои изыскания не особо-то упростили мне жизнь - при попытке считать адресата или body - выскакивает сообщение аутлука, которое предлагает подтвердить доступ к данным.

Это сообщение отредактировал(а) shmarov - 22.8.2008, 13:44
PM MAIL   Вверх
shmarov
Дата 25.8.2008, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 15.6.2007
Где: 1001101 region

Репутация: 1
Всего: 1



Cheklov, если поможет, то есть такой вариант решения твоей задачи - разобрать .msg файл по секциям и сформировать на основании их новое письмо.

Вот тут пример разбора на секции .CHM файла. Этот же метод можно применить и для разбора .MSG. Либо можно самому написать обертку для API, используя этот пример.

Код

using Storage = RelatedObjects.Storage;
...
Storage.IStorageWrapper iww = new Storage.IStorageWrapper(@"C:/untitled.msg");
foreach (Storage.IBaseStorageWrapper.FileObjects.FileObject fileObject in iww.foCollection)
{
    // Check to make sure we can READ stream of an individual file object
    if (fileObject.CanRead)
    {
        // тут идентифицируем секцию и её контент по ключам - весь список есть в спецификации файла .MSG
        string _key = fileObject.FileName.Substring(fileObject.FileName.Length - 8, 4);
        switch (_key)
        {
            case "0C1F": //Ключ для email отправителя
                byte[] _byte = new byte[fileObject.Length];
                fileObject.Read(_byte, 0, (int)fileObject.Length);
                string fileString = Encoding.Unicode.GetString(_byte);
                MessageBox.Show(fileString);
                break;
        }
    }
}


Это сообщение отредактировал(а) shmarov - 25.8.2008, 16:32
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0396 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.