2012-01-31 206 views
2
獲取附件名稱

我正在開發Notes 8.5.2的Lotus Notes插件,該插件將附件從電子郵件保存到硬盤。但是,當我嘗試從Notes文檔中讀取附件名稱時,我總是得到包含第一個附件名稱和一些垃圾數據的相同字符串。Lotus Notes從文檔

protected Vector<String> getAttachmentNames() throws NotesException, 
     IOException { 
    Vector<String> attachmentNames = new Vector<String>(); 
    Item item = null; 
    Enumeration<?> itemsEnum = mailDoc.getItems().elements(); 
    while (itemsEnum.hasMoreElements()) { 
     item = (Item) itemsEnum.nextElement(); 
     if (item.getType() == Item.ATTACHMENT) { 
      attachmentNames.add(getAttachmentNameOf(item)); 
     } 
    } 
    return attachmentNames; 
} 

protected String getAttachmentNameOf(Item item) throws NotesException, 
     IOException { 
    return getAttachmentName(item.getValueString()); 
} 

getAttachmentName只做一些字符串格式化以生成唯一的文件名。

回答

1

要注意的東西。 MIME附件並不總是被識別爲文檔附件。因此,儘管您可以在Notes客戶端中看到它,但您將無法以編程方式訪問它。

以下技術說明詳細介紹了它以及如何解決它。

http://www-01.ibm.com/support/docview.wss?rs=463&&uid=swg21219985

+0

聽起來像我的問題,我在保存附件之前將消息轉換爲MIME。在轉換爲MIME作品之前保存附件。 感謝您的鏈接,值得注意的東西。 – Trellmor 2012-02-01 08:27:56

1

的「附件」,不僅可以爲類型ATTACHMENT,也EMBEDDEDOBJECT,...

試圖找到所有RichTextItems,從這些項目中獲得所有EmbeddedObject S(nrt.getEmbeddedObjects()),然後得到嵌入對象的名稱(eo.getName())。

+0

謝謝你的提示,但我剛剛發現我的錯誤(我認爲)。我做了三件事:保存郵件文本,將郵件保存爲.eml文件並保存所有附件。將郵件另存爲.eml文件我將它轉換爲mime'mailDoc.convertToMIME(2);'並將mime部分寫入硬盤。如果我在將郵件轉換爲MIME之前導出附件,它會起作用,如果我之後將它們導出失敗。 – Trellmor 2012-01-31 17:47:38