【问题标题】:Lotus notes get attachment names from documentLotus Notes 从文档中获取附件名称
【发布时间】:2012-01-31 16:28:49
【问题描述】:

我正在为 Notes 8.5.2 开发一个 Lotus Notes 插件,它将附件从电子邮件保存到硬盘。但是当我尝试从 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 只进行一些字符串格式化以生成唯一的文件名。

【问题讨论】:

    标签: java lotus-notes lotus


    【解决方案1】:

    需要注意的事项。 MIME 附件并不总是被识别为文档附件。因此,虽然您可以在笔记客户端中看到它,但您将无法以编程方式访问它。

    以下技术说明详细说明了它以及如何解决它。

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

    【讨论】:

    • 听起来像是我的问题,我在保存附件之前将邮件转换为 MIME。在转换为 MIME 工作之前保存附件。感谢您的链接,请注意。
    【解决方案2】:

    “附件”不仅可以是 ATTACHMENT 类型,还可以是 EMBEDDEDOBJECT,...

    尝试查找所有 RichTextItems,从每个项目中获取所有 EmbeddedObjects (nrt.getEmbeddedObjects()),然后获取嵌入对象的名称 (eo.getName())。

    【讨论】:

    • 感谢您的提示,但我刚刚发现了我的错误(我认为)。我正在做 3 件事:保存邮件文本、将邮件保存为 .eml 文件并保存所有附件。要将邮件另存为 .eml 文件,我将其转换为 mime mailDoc.convertToMIME(2); 并将 mime 部分写入硬盘。如果我在将邮件转换为 mime 之前导出附件,它可以工作,如果我之后导出它们,它会失败。
    猜你喜欢
    • 2014-10-19
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多