Apache James Mail Server - 保存文件系统上的附件

时间:2014-05-08 13:59:55

标签: java apache javamail james

我使用Apache James版本3.0-beta1,我想知道是否有办法单独保存附件中的电子邮件正文。现在它们都保存在数据库中,这导致表大小明显增加,因为所有附件都以字节流的形式保存在MAIL_BYTES列中。

有没有办法在数据库外部移动附件,只留下数据库内部的电子邮件正文?从长远来看,这种默认行为会使我的数据库崩溃。

1 个答案:

答案 0 :(得分:1)

您可以简单地编写一个mailet来获取邮件的附件,然后将它们保存到文件系统中的特定文件夹中。更具体地说,在mailet中,从org.apache.mailet.Mail获取MimeMessage,然后使用它通过使用getFileName()方法检查是否有任何附件。如果Disposition和ContentType标头不为null,则此方法返回文件名。如果结果不为null,那么这意味着在bodyPart中你附加了一个文件。然后使用getInputStream(),你可以将它保存到你想要的任何地方。