我使用Apache James版本3.0-beta1,我想知道是否有办法单独保存附件中的电子邮件正文。现在它们都保存在数据库中,这导致表大小明显增加,因为所有附件都以字节流的形式保存在MAIL_BYTES列中。
有没有办法在数据库外部移动附件,只留下数据库内部的电子邮件正文?从长远来看,这种默认行为会使我的数据库崩溃。
答案 0 :(得分:1)
您可以简单地编写一个mailet来获取邮件的附件,然后将它们保存到文件系统中的特定文件夹中。更具体地说,在mailet中,从org.apache.mailet.Mail获取MimeMessage,然后使用它通过使用getFileName()方法检查是否有任何附件。如果Disposition和ContentType标头不为null,则此方法返回文件名。如果结果不为null,那么这意味着在bodyPart中你附加了一个文件。然后使用getInputStream(),你可以将它保存到你想要的任何地方。