Java 当类型为text/html时读取电子邮件内容;字符集=iso-8859-1
我正在读一封来自这样一个特定文件夹的未读邮件。消息内容类型为text/html;字符集=iso-8859-1。如何将内容获取为字符串?当我做一个toString时,我得到了类似com.sun.mail.util的东西。QPDecoderStream@4461c7e3Java 当类型为text/html时读取电子邮件内容;字符集=iso-8859-1,java,email,jakarta-mail,Java,Email,Jakarta Mail,我正在读一封来自这样一个特定文件夹的未读邮件。消息内容类型为text/html;字符集=iso-8859-1。如何将内容获取为字符串?当我做一个toString时,我得到了类似com.sun.mail.util的东西。QPDecoderStream@4461c7e3 public Message[] fetchMessages(String host, String user, String password,String folder, boolean read) throws IOExc
public Message[] fetchMessages(String host, String user, String password,String folder, boolean read) throws IOException {
try {
Properties properties = new Properties();
properties.put("mail.store.protocol", "imaps");
Session emailSession = Session.getDefaultInstance(properties);
Store store = emailSession.getStore();
store.connect(host, user, password);
Folder folderToRead = store.getFolder(folder);
folderToRead.open(Folder.READ_WRITE);
Flags seen = new Flags(Flags.Flag.SEEN);
FlagTerm unseenFlagTerm = new FlagTerm(seen, read);
Message messages[] = folderToRead.search(unseenFlagTerm);
System.out.println(messages.length);
for(Message message : messages){
System.out.println(getMessageContent(message));
}
}
public getMessageContent(Message message){
String result = "";
if (message.isMimeType("text/html")) {
// My message type is coming as text/html
result = message.getContent().toString();
}
else if (message.isMimeType("text/plain")) {
result = message.getContent().toString();
}
return result;
}
text/plain是未知类型,以inputstream的形式出现。这对我有用
private static String getTextFromMessage(Message message) throws IOException, MessagingException {
String result = "";
if (message.isMimeType("text/plain")) {
result = message.getContent().toString();
} else if (message.isMimeType("multipart/*")) {
MimeMultipart mimeMultipart = (MimeMultipart) message.getContent();
result = getTextFromMimeMultipart(mimeMultipart);
}
else{
StringWriter writer = new StringWriter();
IOUtils.copy(message.getInputStream(), writer, "UTF-8");
result = writer.toString();
}
return result;
}
消息
来自哪里?你看过它的文档了吗?它在我的outlook中是一条纯文本消息。