我正在尝试使用
阅读内容类型javax.mail.Multipart multipart = (MimeMultipart) mimeMessage.getContent(); //javax.mail.internet.MimeMessage
BodyPart bodyPart = multipart.getBodyPart(index);
当内容类型分为两行时,它返回文件名为Null(我认为80个字符的最大限制导致了这个)
注意:如果我在同一行手动移动名称,它可以正常工作。
有没有办法控制此行为?
这个我能读取文件名
Content-Type: application/pdf; name="abcdefghijk Application-Henry Gotter.pdf"
Content-Description: abcdefghijk Application-Henry Gotter.pdf
Content-Disposition: attachment;
filename="abcdefghijk Application-Henry Gotter.pdf"; size=418197;
creation-date="Fri, 09 Mar 2018 14:59:50 GMT";
modification-date="Thu, 22 Mar 2018 13:40:06 GMT"
Content-Transfer-Encoding: base64
这个我无法读取文件名
Content-Type: application/pdf;
name="abcdefghijk Suitability - Henry Gotter.pdf"
Content-Description: abcdefghijk Suitability - Henry Gotter.pdf
Content-Disposition: attachment;
filename="abcdefghijk Suitability - Henry Gotter.pdf"; size=418960;
creation-date="Fri, 09 Mar 2018 15:03:07 GMT";
modification-date="Thu, 22 Mar 2018 13:40:07 GMT"
Content-Transfer-Encoding: base64
提前致谢。
答案 0 :(得分:2)
根据RFC 2822,第2.2.3节。长标题字段:
每个标题字段在逻辑上是一行字符,包括字段名称,冒号和字段正文。然而,为了方便起见,并且为了处理每行的998/78字符限制,可以将头字段的字段主体部分分成多行表示;这被称为“折叠”。一般规则是,无论此标准允许折叠空白区域(不仅仅是WSP字符),都可以在之前插入CRLF 任何WSP。
例如,标题字段:
Subject: This is a test
可以表示为:
Subject: This is a test
所以,延续线,例如, name=
必须以空格开头。
您显示的标题无效。修复生成它们的代码。