这个问题似乎与MimeUtility.unfold()方法有关。当通过MimeUtility.fold()折叠主题时,如果主题超过折叠字符阈值,则插入换行符。展开后,如果换行后有多个空格,则会剥离空格。下面的例子说明了这个问题任何帮助将不胜感激。
String test = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbb";
System.out.println("Subject Length Before Folding = " + test.length());
test = MimeUtility.fold(9, test);//As per MimeMessage.setSubject();
System.out.println("Subject Length After Folding = " + test.length());
test = MimeUtility.unfold(test); //As per MimeMessage.getSubject(); drops spaces after newline
System.out.println("Subject Length After Unfolding = " + test.length());
答案 0 :(得分:1)
是的,你是对的。 JavaMail试图通过用一个空格替换多个空格和制表符来清理标题。一般来说,这应该无关紧要,并且如果使用制表符而不是空格来折叠标题,通常会使标题值看起来更好,以“缩进”延续行。
但是,严格来说,应该保留连续行开头的空格。
我提交了bug,我为JavaMail 1.6修复了这个问题。