Java 无法使用Aapche_poi_3.10 API跟踪和获取message.msg文件的MAPI属性值
我在使用ApachePOI3.10JAR文件读取.msg文件的某些MAPI属性时遇到困难 代码写在下面Java 无法使用Aapche_poi_3.10 API跟踪和获取message.msg文件的MAPI属性值,java,email,apache-poi,msg,Java,Email,Apache Poi,Msg,我在使用ApachePOI3.10JAR文件读取.msg文件的某些MAPI属性时遇到困难 代码写在下面 import java.io.FileInputStream; import java.util.ArrayList; import java.util.HashMap; import org.apache.poi.hsmf.MAPIMessage; import org.apache.poi.hsmf.datatypes.AttachmentChunks; public class Mes
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.HashMap;
import org.apache.poi.hsmf.MAPIMessage;
import org.apache.poi.hsmf.datatypes.AttachmentChunks;
public class MessageReader {
public static void main(String[] args) {
try {
FileInputStream file = new FileInputStream("C:\\testMail_1.msg");
MAPIMessage msg = new MAPIMessage(file);
HashMap msg_aspect = new HashMap();
msg_aspect.put("attachment_count",msg.getAttachmentFiles().length);
msg_aspect.put("from_addr", msg.getDisplayFrom());
msg_aspect.put("i_partition", 0);
msg_aspect.put("is_signed", false);
msg_aspect.put("message_class", msg.getMessageClass() );
msg_aspect.put("message_subject",msg.getSubject());
msg_aspect.put("receive_date", msg.getMessageDate().getTime());
msg_aspect.put("send_date", msg.getMessageDate().getTime());
ArrayList attchChk = new ArrayList();
for(AttachmentChunks atchChk :msg.getAttachmentFiles()){
String attachFileName = String.valueOf(((atchChk.attachLongFileName == null)?(atchChk.attachFileName+".msg"):atchChk.attachLongFileName));
attchChk.add(attachFileName);
}
msg_aspect.put("attachment_names", attchChk);
ArrayList toAddr = new ArrayList();
for(String user: msg.getDisplayTo().split(";")){
if(!user.trim().equals("")){
toAddr.add(user.trim());
}
}
msg_aspect.put("to_addr", attchChk);
ArrayList ccAddr = new ArrayList();
for (String user : msg.getDisplayCC().split(";")) {
if(!user.trim().equals("")){
ccAddr.add(user.trim());
}
}
msg_aspect.put("cc_addr", ccAddr);
}catch (Exception e) {
e.printStackTrace();
}
}
}
我在阅读下列MAPI属性和MAPI属性值时遇到困难
提前感谢。您是否尝试获取所有MAPI属性,而不仅仅是具有帮助获取程序的属性?打电话给?谢谢你的回复。是的,我尝试使用Set entry=msg.getMainChunks().getProperties().entrySet();但指定的属性在属性列表中仍然不可见。其中一些属性可能会出现在收件人区块上-您也检查了那里的属性了吗?我面临同样的问题:我无法读取接收日期;调用msg.getMessageDate()会得到异常ChunkNotFound异常。查看其他块,我只看到标题中的日期。这可能是一个bug,如本文所述:在ApachePOI3.11中修复