Byn*_*nan 5 java mime multipart jakarta-mail
我不是在编写邮件应用程序,因此我无法访问所有标题等.我所拥有的就像这个问题末尾的块一样.我已经尝试使用JavaMail API来解析它,使用类似的东西
Session s = Session.getDefaultInstance(new Properties());
InputStream is = new ByteArrayInputStream(<< String to parse >>);
MimeMessage message = new MimeMessage(s, is);
Multipart multipart = (Multipart) message.getContent();
Run Code Online (Sandbox Code Playgroud)
但是,它只是告诉我message.getContent是一个String,而不是Multipart或MimeMultipart.另外,我并不需要整个JavaMail API的所有开销,我只需要将文本解析为它的部分.这是一个例子:
This is a multi-part message in MIME format.\n\n------=_NextPart_000_005D_01CC73D5.3BA43FB0\nContent-Type: text/plain;\n\tcharset="iso-8859-1"\nContent-Transfer-Encoding: quoted-printable\n\nStuff:\n\n Please read this stuff at the beginning of each week. =\nFeel free to discuss it throughout the week.\n\n\n--=20\n\nMrs. Suzy M. Smith\n555-555-5555\nsuzy@suzy.com\n------=_NextPart_000_005D_01CC73D5.3BA43FB0\nContent-Type: text/html;\n\tcharset="iso-8859-1"\nContent-Transfer-Encoding: quoted-printable\n\n\n\n\n\n\n\n\n\nStuff:\n =20\nPlease read this stuff at the beginning of each =\nweek. Feel=20\nfree to discuss it throughout the week.\n
--
Mrs. Suzy M. Smith
555-555-5555
suzy@suzy.com\n\n------=_NextPart_000_005D_01CC73D5.3BA43FB0--\n\n
首先,我接受了您的示例消息,并\n用换行符和\t标签替换了所有出现的内容.
然后我从Mime4J项目(Apache James的子项目)下载了JAR ,并使用上面转换的消息作为输入执行了GUI解析示例 org.apache.james.mime4j.samples.tree.MessageTree.显然,Mime4J能够解析消息并提取HTML消息部分.
您发布的文字有一些问题.
它不是一个有效的多部分哑剧.查看维基百科参考资料,虽然非规范性,仍然是正确的.
默认边界未定义.从维基百科示例:Content-Type: multipart/mixed; boundary="frontier"显示边界是"前沿".在您的示例中,"---- = _ NextPart_000_005D_01CC73D5.3BA43FB0"是边界,但这只能通过扫描文本来确定(即,mime格式不正确).您需要指示传递给您的mof内容的goofball,您还需要知道mime边界值,而mime边界值未在消息头中定义.如果你得到消息的整个身体,因为邮件的正文开头你将有足够的MIME-Version: 1.0后面,其中前沿将与编码的MIME边界的值来代替.Content-Type: multipart/mixed; boundary="frontier"
如果发送身体的人是一个傻瓜球(因为猴子因为猴子过于判断而改变了我的坏DwB),并且不会(更可能不知道如何)发送全身,你可以通过扫描得出边界以" - "开头和结尾的行的文本(即 --boundary--).请注意,我提到了"线".终端边界实际上是"--boundary - \n".
最后,你发布的东西有2个部分.第一部分似乎定义了第二部分中发生的替换.如果这是真的,那么第一部分的Content-Type:应该是"text/plain"以外的东西.也许是"公司名称/替代定义"或类似的东西.这将允许多个(如将来的增强)替换格式.
| 归档时间: |
|
| 查看次数: |
32580 次 |
| 最近记录: |