2015-02-10 2 views
0

Я читаю файл outlook msg в java с помощью msgparser. Ниже код.Попытка сохранить прикрепленный файл msg на локальном диске в java

MsgParser msgp = new MsgParser(); 
Message msg = msgp.parseMsg("temp.msg");    
List<Attachment> atts = msg.getAttachments(); 

for (Attachment att : atts) { 
    if (att instanceof FileAttachment) { 

    } 
    if (att instanceof MsgAttachment){ 
     MsgAttachment msg1 = (MsgAttachment) att; 
     Message msg2 = msg1.getMessage(); 
    } 
} 

В приведенном выше коде я получил объект msgAttachment. Я не могу записать это в файл. Я хочу, чтобы это было написано как файл msgs outlook.

ответ

-1

Я вижу, что вы используете Java. Вы можете попробовать использовать jacob framework. Предварительные требования для использования платформы Jacob - загрузить библиотеку dac jacob.

Для того, чтобы читать почту и другие свойства почты вы можете перейти по ссылке https://msdn.microsoft.com/en-us/library/office/aa210946(v=office.11).aspx

Успенский сделал - Вы пытаетесь читать почту через Клиента Outlook.

Чтобы сохранить прикрепленные файлы с почтой, вы можете попробовать использовать код ниже.

ActiveXComponent xl = new ActiveXComponent(
        "Outlook.Application"); 
Dispatch explorer = Dispatch 
        .get(xl, "ActiveExplorer").toDispatch(); 
Dispatch selection = Dispatch.get(explorer, 
        "Selection").toDispatch(); 
Variant count = Dispatch.get(selection, "Count"); 
int toInt = count.getInt(); 
for(int j=1;i<=toInt;i++){ 
    Dispatch mailItem = Dispatch.call(selection, 
      "Item", new Variant(j)).toDispatch(); 
    Dispatch attachs = Dispatch.get(mailItem, "Attachments").toDispatch(); 

    Variant count1 = Dispatch.get(attachs, "Count"); 
    int numberOfAttach = count1.getInt();   
    for (int i = 1; i <= numberOfAttach; i++) { 

     Attachment attach = new Attachment(); 
     Dispatch attachment = Dispatch.call(attachs, "Item", 
       new Variant(i)).toDispatch(); 

     //get the name of the file 
     Variant nameOfFile = Dispatch.get(attachment, "DisplayName");      
     String displayName = nameOfFile.getString(); 
     Variant type = Dispatch.get(attachment, "Type"); 

     Variant saveAttachment = null; 
     saveAttachment = Dispatch.call(attachment, "SaveAsFile","path where attachment need to be saved"); 
    } 
} 
Смежные вопросы