Javamail换行符无法保存到数据库中

时间:2016-06-09 20:33:28

标签: java javamail

我正在使用javamail读取邮箱并将所有传入的邮件保存到我的应用程序的sql数据库中。我的问题是当邮件是String格式时,换行符不会保存到db。例如,我正在阅读的邮件(在日志中看到)如下所示

Hello

This is a test mail

Regards

Sender

但是在数据库专栏中,它作为续行保存为 -

Hello This is a test mail Regards Sender 

我正在使用以下代码执行上述任务

if(content instanceof String){
  String body = (String)content;

  inBox.setMailContent(body);

  inBoxDAO.save(inBox);
}

我之前没有使用过邮件,任何建议都会有所帮助。请注意,这与多部分html格式完美配合。问题在于发件人的邮件以纯文本形式出现

1 个答案:

答案 0 :(得分:-1)

您可以使用\ n作为新行。你可能不得不从数据库中获取字符串。 Apache Commons Lang有一个方法:

http://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/StringEscapeUtils.html#unescapeJava%28java.io.Writer,%20java.lang.String%29

  • 它会将'\'和'n'的序列转换为换行符,除非'\'前面有另一个'\'。

所以你只需要致电

String content = StringEscapeUtils.unescapeJava(rs.getString("content"));