1

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

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

4

1 回答 1

2

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

于 2014-06-04T07:36:20.260 回答