2016-06-09 59 views
0

我正在使用javamail读取邮箱并将所有传入邮件保存到我的应用程序的sql数据库中。我的问题是,当邮件是字符串格式的换行符不保存到数据库。比如我读(即出现在日志)的邮件就像下面Javamail换行符无法保存到数据库中

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

的HTML可能没有任何换行符。我认为问题不在于邮件部分;这可能与您如何在数据库中存储和检索数据有关。 –

回答

-1

您可以使用\ n作为新行。您可能不得不忽略从数据库中获取的字符串。 Apache的共享郎有专门的方法:

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")); 
+0

为什么数据会包含'\'和'n'序列? – EJP