1 | <?xml version="1.0" encoding="ISO-8859-1"?> |
---|
2 | <!-- |
---|
3 | /**************************************************************** |
---|
4 | * Licensed to the Apache Software Foundation (ASF) under one * |
---|
5 | * or more contributor license agreements. See the NOTICE file * |
---|
6 | * distributed with this work for additional information * |
---|
7 | * regarding copyright ownership. The ASF licenses this file * |
---|
8 | * to you under the Apache License, Version 2.0 (the * |
---|
9 | * "License"); you may not use this file except in compliance * |
---|
10 | * with the License. You may obtain a copy of the License at * |
---|
11 | * * |
---|
12 | * http://www.apache.org/licenses/LICENSE-2.0 * |
---|
13 | * * |
---|
14 | * Unless required by applicable law or agreed to in writing, * |
---|
15 | * software distributed under the License is distributed on an * |
---|
16 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * |
---|
17 | * KIND, either express or implied. See the License for the * |
---|
18 | * specific language governing permissions and limitations * |
---|
19 | * under the License. * |
---|
20 | ****************************************************************/ |
---|
21 | |
---|
22 | --> |
---|
23 | <document> |
---|
24 | <properties> |
---|
25 | <title>Mime4j</title> |
---|
26 | </properties> |
---|
27 | <body> |
---|
28 | <section name="Mime4j"> |
---|
29 | <p> |
---|
30 | Apache Mime4j is developed by the |
---|
31 | <a href="http://james.apache.org/">Apache James</a> team but now has a |
---|
32 | dedicated <a href="http://james.apache.org/mail.html#Mime4j">mailing list</a>. |
---|
33 | </p> |
---|
34 | <p> mime4j provides a parser, |
---|
35 | <a href="apidocs/org/apache/james/mime4j/parser/MimeStreamParser.html"> |
---|
36 | <code>MimeStreamParser</code> |
---|
37 | </a>, for e-mail message streams in plain rfc822 and MIME |
---|
38 | format. The parser uses a callback mechanism to report parsing |
---|
39 | events such as the start of an entity header, the start of a |
---|
40 | body, etc. If you are familiar with the <a |
---|
41 | href="http://www.saxproject.org/">SAX</a> XML parser interface |
---|
42 | you should have no problem getting started with mime4j. </p> |
---|
43 | <p> The parser only deals with the structure of the message stream. |
---|
44 | It won't do any decoding of base64 or quoted-printable encoded |
---|
45 | header fields and bodies. This is intentional - the parser |
---|
46 | should only provide the most basic functionality needed to build |
---|
47 | more complex parsers. However, mime4j does include facilities to |
---|
48 | decode bodies and fields and the <code>Message</code> class |
---|
49 | described below handles decoding of fields and bodies |
---|
50 | transparently. </p> |
---|
51 | <p> The parser has been designed to be extremely tolerant against |
---|
52 | messages violating the standards. It has been tested using a |
---|
53 | large corpus (>5000) of e-mail messages. As a benchmark |
---|
54 | the widely used perl <code>MIME::Tools</code> |
---|
55 | parser has been used. mime4j and MIME:Tools rarely differ |
---|
56 | (<25 in those 5000). When they do (which only occurs |
---|
57 | for illegally formatted spam messages) we think mime4j does a |
---|
58 | better job. </p> |
---|
59 | <p> mime4j can also be used to build a tree representation of an |
---|
60 | e-mail message using the |
---|
61 | <a href="apidocs/org/apache/james/mime4j/message/Message.html"> |
---|
62 | <code>Message</code> |
---|
63 | </a> class. Using this facility mime4j automatically handles the |
---|
64 | decoding of fields and bodies and uses temporary files for large |
---|
65 | attachments. This representation is similar to the |
---|
66 | representation constructed by the JavaMail API:s but is more |
---|
67 | tolerant to messages violating the standards. </p> |
---|
68 | </section> |
---|
69 | </body> |
---|
70 | </document> |
---|