blob: 3bfb56105f473ad7884748b1d8eca146ea27e5b1 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by Apache Maven Doxia at Dec 28, 2012 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>mailets -
Overview</title>
<style type="text/css" media="all">
@import url("../css/james.css");
@import url("../css/maven-base.css");
@import url("../css/maven-theme.css");
@import url("../css/site.css");
@import url("../js/jquery/css/custom-theme/jquery-ui-1.8.5.custom.css");
@import url("../js/jquery/css/print.css");
@import url("../js/fancybox/jquery.fancybox-1.3.4.css");
</style>
<script type="text/javascript" src="../js/jquery/js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="../js/jquery/js/jquery-ui-1.8.5.custom.min.js"></script>
<script type="text/javascript" src="../js/fancybox/jquery.fancybox-1.3.4.js"></script>
<link rel="stylesheet" href="../css/print.css" type="text/css" media="print" />
<meta name="author" content="Mailet API Project" />
<meta name="Date-Revision-yyyymmdd" content="20121228" />
<meta http-equiv="Content-Language" content="en" />
<link title="DOAP" rel="meta" type="application/rdf+xml" href="http://james.apache.org//doap_james-project.rdf"/>
<!-- Google Analytics -->
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-1384591-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script').item(0); s.parentNode.insertBefore(ga, s);
})();
</script>
</head>
<body class="composite">
<div id="banner">
<a href="../../index.html" id="bannerLeft" title="james-mailets-logo.gif">
<img src="../images/logos/james-mailets-logo.gif" alt="Apache James Project" />
</a>
<a href="http://www.apache.org/index.html" id="bannerRight">
<img src="images/logos/asf-logo-reduced.gif" alt="The Apache Software Foundation" />
</a>
<div class="clear">
<hr/>
</div>
</div>
<div id="breadcrumbs">
<div class="xleft">
<span id="publishDate">Last Published: 2012-12-28</span>
</div>
<div class="xright"> <a href="../../index.html" title="Home">Home</a>
|
<a href="../../server/index.html" title="Server">Server</a>
|
<a href="../../hupa/index.html" title="Hupa">Hupa</a>
|
<a href="../../protocols/index.html" title="Protocols">Protocols</a>
|
<a href="../../imap/index.html" title="IMAP">IMAP</a>
|
<a href="../index.html" title="Mailets">Mailets</a>
|
<a href="../../mailbox/index.html" title="Mailbox">Mailbox</a>
|
<a href="../../mime4j/index.html" title="Mime4J">Mime4J</a>
|
<a href="../../jsieve/index.html" title="jSieve">jSieve</a>
|
<a href="../../jspf/index.html" title="jSPF">jSPF</a>
|
<a href="../../jdkim/index.html" title="jDKIM">jDKIM</a>
|
<a href="../../mpt/index.html" title="MPT">MPT</a>
|
<a href="../../postage/index.html" title="Postage">Postage</a>
</div>
<div class="clear">
<hr/>
</div>
</div>
<div id="leftColumn">
<div id="navcolumn">
<h5>Mailet</h5>
<ul>
<li class="none">
<a href="../api" title="Mailet API">Mailet API</a>
</li>
<li class="none">
<a href="../ai" title="Mailet AI">Mailet AI</a>
</li>
<li class="none">
<a href="../base" title="Basic Mailet Toolkit">Basic Mailet Toolkit</a>
</li>
<li class="none">
<a href="../crypto" title="Crypto Mailets">Crypto Mailets</a>
</li>
<li class="none">
<a href="../mailetdocs-maven-plugin" title="MailetDocs">MailetDocs</a>
</li>
<li class="none">
<a href="../../jsieve/mailet/" title="Sieve Mailet">Sieve Mailet</a>
</li>
<li class="none">
<a href="../standard" title="Standard Mailets">Standard Mailets</a>
</li>
</ul>
<h5>Useful Information</h5>
<ul>
<li class="none">
<a href="../apidocs" title="Java Docs">Java Docs</a>
</li>
<li class="none">
<a href="../quickstart.html" title="Quick Start">Quick Start</a>
</li>
<li class="none">
<a href="../release-notes.html" title="Release Notes">Release Notes</a>
</li>
</ul>
<h5>Project Documentation</h5>
<ul>
<li class="collapsed">
<a href="../project-info.html" title="Project Information">Project Information</a>
</li>
<li class="collapsed">
<a href="../project-reports.html" title="Project Reports">Project Reports</a>
</li>
</ul>
<h5>About James</h5>
<ul>
<li class="none">
<a href="../../index.html" title="Overview">Overview</a>
</li>
<li class="none">
<a href="../../newsarchive.html" title="News">News</a>
</li>
<li class="none">
<a href="../../mail.html" title="Mailing Lists">Mailing Lists</a>
</li>
<li class="none">
<a href="../../contribute.html" title="Contributing">Contributing</a>
</li>
<li class="none">
<a href="../../guidelines.html" title="Guidelines">Guidelines</a>
</li>
<li class="none">
<a href="http://wiki.apache.org/james" title="Wiki">Wiki</a>
</li>
<li class="none">
<a href="../../team-list.html" title="Who We Are">Who We Are</a>
</li>
<li class="none">
<a href="../../license.html" title="License">License</a>
</li>
</ul>
<h5>Download</h5>
<ul>
<li class="none">
<a href="../../download.cgi" title="Releases">Releases</a>
</li>
<li class="none">
<a href="https://repository.apache.org/content/repositories/snapshots/org/apache/james/" title=""></a>
</li>
</ul>
<h5>Apache Software Foundation</h5>
<ul>
<li>
<strong>
<a title="ASF" href="http://www.apache.org/">ASF</a>
</strong>
</li>
<li>
<a title="Get Involved" href="http://www.apache.org/foundation/getinvolved.html">Get Involved</a>
</li>
<li>
<a title="FAQ" href="http://www.apache.org/foundation/faq.html">FAQ</a>
</li>
<li>
<a title="License" href="http://www.apache.org/licenses/" >License</a>
</li>
<li>
<a title="Sponsorship" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
</li>
<li>
<a title="Thanks" href="http://www.apache.org/foundation/thanks.html">Thanks</a>
</li>
<li>
<a title="Security" href="http://www.apache.org/security/">Security</a>
</li>
</ul>
<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
<img class="poweredBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
</a>
</div>
</div>
<div id="bodyColumn">
<div id="contentBox">
<!-- Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License. -->
<div class="section"><h2>What is the Apache Mailet API?<a name="What_is_the_Apache_Mailet_API"></a></h2>
<p>
The Apache Mailet API is a Java API which allows the rapid development and flexible deployment of email
processing functionality.
</p>
<p>
The Mailet API is a subproject of<a class="externalLink" href="http://james.apache.org">Apache James</a>.
All who are interested in developing the Mailet API and James will be warmly
welcomed on the<a href="/mail-lists.html">mailing lists</a>.
</p>
</div>
<div class="section"><h2>Quick Start<a name="Quick_Start"></a></h2>
<div class="section"><h3>What Is A Mailet?<a name="What_Is_A_Mailet"></a></h3>
<p>
A mailet is a mail processing component. Though there are some differences, a servlet as a HTTP
processing component is a useful analogy.
</p>
<p>
Mailets implement<a href="/apidocs/org/apache/mailet/Mailet.html">Mailet</a>.
Mailets execute within a mailet container.
<a class="externalLink" href="http://james.apache.org/server">James server</a>
is a well known mailet container. Assembly and configuration of mailets and mail processors is the
responsibility of the particular container.
</p>
</div><div class="section"><h3>Mailet Basic Lifecycle<a name="Mailet_Basic_Lifecycle"></a></h3>
<p>
Mailets have a simple lifecycle managed by the mailet container:
</p>
<ol style="list-style-type: decimal">
<li>
<b>
<tt>init(
<a href="apidocs/org/apache/mailet/MailetConfig.html">MailetConfig</a>
config)
</tt>
</b>
passes environmental information. Any setup necessary should be performed now.
</li>
<li>During processing,
<b>
<tt>service(
<a href="apidocs/org/apache/mailet/Mail.html">Mail</a>
mail)
</tt>
</b>
is called repeatedly. Note that this method may be called concurrently.
</li>
<li>
<b>
<tt>destroy()</tt>
</b>
is called when the mailet is taken out of service.
</li>
</ol>
</div>
<div class="section"><h3>Configuration<a name="Configuration"></a></h3>
<p>
<a href="apidocs/org/apache/mailet/MailetConfig.html">MailetConfig</a>
gives access to simple parametrization.
<tt>getInitParameter</tt>
allows configuration parameters to be passed from the mailet container.
How these parameters are set by the user of the mailet is the responsibility of the container.
More sophisticated configuration and assembly (for example, allowing access to services) is also
the responsibility of the container.
</p>
</div>
<div class="section"><h3>Communication With The Container<a name="Communication_With_The_Container"></a></h3>
<p>
<a href="apidocs/org/apache/mailet/MailetConfig.html">MailetConfig</a>
allows communication with the container
by calling getMailetContext(). See
<a href="apidocs/org/apache/mailet/MailetContext.html">MailetContext</a>
for more details.
</p>
</div>
<div class="section"><h3>Basic Toolkit<a name="Basic_Toolkit"></a></h3>
<p>
The
<a class="externalLink" href="http://james.apache.org/mailet/base">Basic Mailet Toolkit</a>
collects lightweight frameworks and utilities likely to be useful for general mailet developers.
</p>
</div>
<div class="section"><h3>Examples<a name="Examples"></a></h3>
<p>
See<a class="externalLink" href="http://james.apache.org/mailet/standard">Standard mailets</a>.
</p>
</div>
<div class="section"><h3>Building the Mailet API<a name="Building_the_Mailet_API"></a></h3>
<p>
The build uses<a class="externalLink" href="http://ant.apache.org">Ant</a>.
<tt>ant -projecthelp</tt>
describes appropriate targets.
<tt>ant</tt>
runs the default target.
</p>
</div>
</div>
<div class="section"><h2>Comments, Questions and Issues<a name="Comments_Questions_and_Issues"></a></h2>
<p>Please direct your feedback to the<a href="mail-lists.html">mailet-api mailing list</a>.
</p>
</div>
</div>
</div>
<div class="clear">
<hr/>
</div>
<div id="footer">
<div class="xright">Copyright &#169; 2008-2012
<a href="http://www.apache.org/">The Apache Software Foundation</a>.
All Rights Reserved.
</div>
<div class="clear">
<hr/>
</div>
</div>
</body>
</html>