我有一个现有的代码,可以正确下载和处理一些电子邮件。
要处理的电子邮件必须有一个或多个 xml 作为附件,现在我正在将此过程从当前的标准邮件帐户迁移到一个经过认证的系统,该系统将该邮件包装成新的电子邮件。
因此,我必须解析带有 XML(经过认证的)和 EML(我应该处理的消息)的电子邮件,而不是带有一个 xml 附件的平面电子邮件。
简而言之,我的代码如下:
private void processMessage(final Message message) {
try {
final String contentType = message.getContentType();
if (contentType.contains("multipart")) {
final Multipart multiPart = (Multipart) message.getContent();
for (int i = 0; i < multiPart.getCount(); i++) {
final MimeBodyPart part = (MimeBodyPart) multiPart.getBodyPart(i);
/**************************************************************
* HERE I CAN'T GET THE EML (and its attachments) FROM 'part' *
**************************************************************/
if (Part.ATTACHMENT.equalsIgnoreCase(part.getDisposition())) {
processAttachment(part);
}
}
}
} [...cutted...]
}
private void processAttachment(final MimeBodyPart part) throws IOException, MessagingException {
final InputStream input = getReusableInputStream(part);
if (part.getFileName() != null && isXmlType(part.getContentType())) {
processXml(input);
}
}
我应该修改它,以便解析 EML 并递归获取附件,但我错过了大局。
胡子哥哥
相关分类