如何解析邮件收件箱中的邮件标题而不是中文错误代码

时间:2016-03-16 13:54:39

标签: java email javamail

我正在使用java从邮件收件箱解析邮件,邮件内容是正确的,但是邮件标题是中文错误代码时出错。代码:subject = message.getSubject(); subject有一些中文错误代码。

有一些代码如下:

Properties props = new Properties();
props.setProperty("mail.store.protocol", mailProtocol.getProtocol());
props.setProperty(mailProtocol.getHostName(), mailProtocol.getHost());
props.setProperty(mailProtocol.getPortName(), mailProtocol.getPort());
String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
props.put("mail.pop3.socketFactory.class", SSL_FACTORY);
Session session = Session.getInstance(props);
Store store = session.getStore();
store.connect(cVMailbox.getBoxUserName(), pwd);

Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
for (int i = folder.getMessageCount(); i > 1; i--) {

    Message message = folder.getMessage(i);
     MimeMessage msg = (MimeMessage)message;
    sentDate = message.getSentDate();

     subject = message.getSubject();

}

如何获得正确的邮件标题?有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:1)

在会话初始化之前输入以下代码:

System.setProperty("mail.mime.decodetext.strict", "false");

然后尝试以下代码:

String subject = MimeUtility.decodeText(message.getSubject());