从传入的邮件消息中提取(和上载)附件

时间:2016-12-13 11:08:50

标签: moqui

您对如何从传入消息中提取附件有任何想法吗?我的消息附有PDF。这是我在控制台中看到的:

['contentType':'application/pdf; name="TransakciaMK.pdf"', 'filename':'TransakciaMK.pdf', 'disposition':'attachment', 'contentBytes':'[B@d2d9e15']

我想使用用于上传文件的代码

  

org.apache.commons.fileupload.FileItem的

到保存文件的服务。

  1. 这是一种正确的做法吗?
  2. 如果是,我如何将附件呈现到FileItem中?
  3. 添加了:

    行。我一定做错了什么。我使用bodyPartList [2] .contentBytes.getBytes()提取byte []。变为名为 contentFileByte 的变量。

    然后:

    ByteArrayInputStream fileStream = new ByteArrayInputStream(contentFileByte)
    try { docRr.putStream(fileStream) } finally { fileStream.close() }
    

    创建了一个文件,但它只包含:

      

    [B @ d2d9e15

    在将字节数组转换为文件流的过程中,某处必定存在错误。

1 个答案:

答案 0 :(得分:1)

我不知道这是否有用,您可能已经看过了 - 但在EmailEcaRule.groovy的最后,您可以看到如何使用JavaMail API从电子邮件创建bodyPartList。我认为你需要遍历bodyPartList来检查每个部分的MIME类型,以便知道你是否必须将其视为文本或附件。 - 目前,emeca规则引用的现有服务只是处理它非常简单,仅从bodyPartList [0] .contentText中获取正文。我还没有试过自己提取附件,但是从之前完成的任务开始,我就开始尝试这样做了。