Use java to convert e-mail to its original format
•
Java
I have been trying to create an object of mimemessage type using JavaMail API and get its original representation, but I have failed The only thing I can get is the original representation of the email content, but not the title, subject or recipient Any suggestion I'm interested in, any Java library, can help me create an email object and then get its original representation The original representation should look like this:
received: from imta14.emeryville.ca.mail.myisp.net ([nn.nn.30.46]) by alnrmxc19.isp.net (alnrmxc19) with ESMTP id <20080930215116a19007q9u6e>; Tue,30 Sep 2008 21:51:16 +0000 X-Originating-IP: [nn.nn.30.46] Received: from libertatea.go ([nn.nn.161.160]) by IMTA14.mail.isp.net with isp id M9qy1a00V3TwUto0E9rELB; Tue,30 Sep 2008 21:51:15 +0000 X-Authority-Analysis: v=1.0 c=1 a=DZlucjOqAY8A:10 a=mnGO974OAAAA:8 a=9MJFf195B83LjESASTQA:9 a=Lm7NQ261g8eJHgoaELoA:7 a=7Narey355jFQWZRww2lj1r9-lCkA:4 a=8COHQAuY8ZYA:10 a=zEVpGHA-kecA:10 a=37WNUvjkh6kA:10 Received: by libertatea.go id hm1nfa0di0sn for <xxx@myisp.net>; Sun,30 Sep 2018 09:36:35 +0300 (envelope-from <Hometown.Quotes_ary@mousemegadot.com>) Message-ID: <79864795@mousemegadot.com> Date: Sun,30 Sep 2018 09:36:35 +0300 From: "Hometown Quotes" <Hometown.Quotes_ary@mousemegadot.com> To: dummy@myisp.net Subject: Find Affordable Auto Insurance Today MIME-Version: 1.0 X-UID: 79864795.modhnrfo.jhhnk.1 Content-Type: multipart/alternative; boundary="0-1411506895-1200484069=:66653" Content-@R_398_301@: 8bit X-PMFLAGS: 570966272 9 1 PE71PYHD.CNM X-UC-Weight: [# ] 51 X-CC-Diagnostic: Test 'LazyHTML Tolerant' (51) --0-1411506895-1200484069=:66653 Content-Type: text/plain; charset=iso-8859-1 Content-@R_398_301@: 8bit --0-1411506895-1200484069=:66653 Content-@R_398_301@: 8bit Content-Type: text/html; charset=iso-8859-1; DelSp="Yes"; format="flowed"
Solution
What you are looking for is mimemessag#writeto, which outputs messages as RFC 822 format streams
Example of converting mimemessage to string using writeto
MimeMessage mimeMessage; // mimeMessage get assigned ByteArrayOutputStream output = new ByteArrayOutputStream(); mimeMessage.writeTo(output); String rawEmail = output.toString();
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码