从收到的邮件消息中提取(和上传)附件
Extracting (and uploading) attachment from an incoming mail message
您知道如何从收到的邮件中提取附件吗?我在邮件中附加了 PDF 文件。这是我在控制台中看到的:
['contentType':'application/pdf; name="TransakciaMK.pdf"', 'filename':'TransakciaMK.pdf', 'disposition':'attachment', 'contentBytes':'[B@d2d9e15']
我想使用上传文件的代码
org.apache.commons.fileupload.FileItem
保存文件的服务。
- 这是正确的做法吗?
- 如果是,我如何将附件呈现为 FileItem?
已添加:
好的。我一定做错了什么。我使用 bodyPartList[2].contentBytes.getBytes() 提取 byte[]。进入名为 contentFileByte.
的变量
然后:
ByteArrayInputStream fileStream = new ByteArrayInputStream(contentFileByte)
try { docRr.putStream(fileStream) } finally { fileStream.close() }
文件已创建,但仅包含:
[B@d2d9e15
一定是字节数组转文件流的过程中某处出错了
我不知道这是否有帮助,您可能已经看到了 - 但在 EmailEcaRule.groovy 的最后,您可以看到 bodyPartList 是如何从电子邮件创建的,利用 JavaMail API。我认为您随后需要遍历 bodyPartList 以检查每个部分的 MIME 类型,以便了解您是否必须将其视为文本或附件。 - 当前,您的 emeca 规则引用的现有服务处理起来非常简单,仅从 bodyPartList[0].contentText 获取正文。我自己还没有尝试提取附件,但是根据之前完成的任务,我会从那里开始尝试执行此操作。
您知道如何从收到的邮件中提取附件吗?我在邮件中附加了 PDF 文件。这是我在控制台中看到的:
['contentType':'application/pdf; name="TransakciaMK.pdf"', 'filename':'TransakciaMK.pdf', 'disposition':'attachment', 'contentBytes':'[B@d2d9e15']
我想使用上传文件的代码
org.apache.commons.fileupload.FileItem
保存文件的服务。
- 这是正确的做法吗?
- 如果是,我如何将附件呈现为 FileItem?
已添加:
好的。我一定做错了什么。我使用 bodyPartList[2].contentBytes.getBytes() 提取 byte[]。进入名为 contentFileByte.
的变量然后:
ByteArrayInputStream fileStream = new ByteArrayInputStream(contentFileByte)
try { docRr.putStream(fileStream) } finally { fileStream.close() }
文件已创建,但仅包含:
[B@d2d9e15
一定是字节数组转文件流的过程中某处出错了
我不知道这是否有帮助,您可能已经看到了 - 但在 EmailEcaRule.groovy 的最后,您可以看到 bodyPartList 是如何从电子邮件创建的,利用 JavaMail API。我认为您随后需要遍历 bodyPartList 以检查每个部分的 MIME 类型,以便了解您是否必须将其视为文本或附件。 - 当前,您的 emeca 规则引用的现有服务处理起来非常简单,仅从 bodyPartList[0].contentText 获取正文。我自己还没有尝试提取附件,但是根据之前完成的任务,我会从那里开始尝试执行此操作。