| <?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 Apr 17, 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> |
| Apache James Server 3 - Mailet Container Configuration</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="Date-Revision-yyyymmdd" content="20120417" />
|
| <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-server-logo.gif">
|
|
|
|
|
| <img src="images/logos/james-server-logo.gif" alt="Apache James Server 3.0" />
|
| </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-04-17</span>
|
| </div>
|
| <div class="xright"> <a href="../../index.html" title="Home">Home</a>
|
| |
|
| <a href="../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="../../mailet/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>Overview</h5>
|
| <ul>
|
| <li class="none">
|
| <a href="index.html" title="Introduction">Introduction</a>
|
| </li>
|
| <li class="none">
|
| <a href="release-notes.html" title="Release Notes">Release Notes</a>
|
| </li>
|
| </ul>
|
| <h5>Features</h5>
|
| <ul>
|
| <li class="none">
|
| <a href="feature-mailetcontainer.html" title="Mailet Container">Mailet Container</a>
|
| </li>
|
| <li class="none">
|
| <a href="feature-queue-priority.html" title="Queue Priority">Queue Priority</a>
|
| </li>
|
| <li class="none">
|
| <a href="feature-persistence.html" title="Persistence">Persistence</a>
|
| </li>
|
| <li class="none">
|
| <a href="feature-protocols.html" title="Protocols">Protocols</a>
|
| </li>
|
| <li class="none">
|
| <a href="feature-smtp-hooks.html" title="SMTP Hooks">SMTP Hooks</a>
|
| </li>
|
| <li class="none">
|
| <a href="feature-performance.html" title="Performance">Performance</a>
|
| </li>
|
| <li class="none">
|
| <a href="feature-security.html" title="Security">Security</a>
|
| </li>
|
| </ul>
|
| <h5>User Manual</h5>
|
| <ul>
|
| <li class="none">
|
| <a href="quick-start.html" title="1. Quick Start">1. Quick Start</a>
|
| </li>
|
| <li class="none">
|
| <a href="install.html" title="2. Install James">2. Install James</a>
|
| </li>
|
| <li class="expanded">
|
| <a href="config.html" title="3. Configure James">3. Configure James</a>
|
| <ul>
|
| <li class="none">
|
| <a href="config-system.html" title="System">System</a>
|
| </li>
|
| <li class="none">
|
| <a href="config-domainlist.html" title="Domain List">Domain List</a>
|
| </li>
|
| <li class="none">
|
| <a href="config-users.html" title="Users">Users</a>
|
| </li>
|
| <li class="none">
|
| <a href="config-recipientrewritetable.html" title="Recipient Rewrite">Recipient Rewrite</a>
|
| </li>
|
| <li class="none">
|
| <a href="config-mailbox.html" title="Mailbox">Mailbox</a>
|
| </li>
|
| <li class="none">
|
| <a href="config-mailrepositorystore.html" title="Mail Repository Stores">Mail Repository Stores</a>
|
| </li>
|
| <li class="none">
|
| <a href="config-dnsservice.html" title="DNS Service">DNS Service</a>
|
| </li>
|
| <li class="none">
|
| <a href="config-smtp-lmtp.html" title="SMTP LMTP">SMTP LMTP</a>
|
| </li>
|
| <li class="none">
|
| <a href="config-pop3.html" title="POP3">POP3</a>
|
| </li>
|
| <li class="none">
|
| <a href="config-imap4.html" title="IMAP4">IMAP4</a>
|
| </li>
|
| <li class="none">
|
| <strong>Mailet Container</strong>
|
| </li>
|
| <li class="none">
|
| <a href="config-fetchmail.html" title="FetchMail">FetchMail</a>
|
| </li>
|
| <li class="none">
|
| <a href="config-ssl-tls.html" title="SSL/TLS">SSL/TLS</a>
|
| </li>
|
| <li class="none">
|
| <a href="config-sieve.html" title="Sieve">Sieve</a>
|
| </li>
|
| <li class="none">
|
| <a href="config-antispam.html" title="Anti Spam">Anti Spam</a>
|
| </li>
|
| </ul>
|
| </li>
|
| <li class="collapsed">
|
| <a href="manage.html" title="4. Manage">4. Manage</a>
|
| </li>
|
| <li class="collapsed">
|
| <a href="monitor.html" title="5. Monitor">5. Monitor</a>
|
| </li>
|
| <li class="collapsed">
|
| <a href="upgrade.html" title="6. Upgrade">6. Upgrade</a>
|
| </li>
|
| </ul>
|
| <h5>Developers Corner</h5>
|
| <ul>
|
| <li class="none">
|
| <a href="dev.html" title="Architecture">Architecture</a>
|
| </li>
|
| <li class="none">
|
| <a href="dev-build.html" title="Build from source">Build from source</a>
|
| </li>
|
| <li class="none">
|
| <a href="dev-database-schema.html" title="Database Schema">Database Schema</a>
|
| </li>
|
| <li class="collapsed">
|
| <a href="dev-extend.html" title="Develop Extensions">Develop Extensions</a>
|
| </li>
|
| <li class="collapsed">
|
| <a href="dev-provided.html" title="Provided Extensions">Provided Extensions</a>
|
| </li>
|
| <li class="none">
|
| <a href="https://repository.apache.org/content/repositories/snapshots/org/apache/james/apache-james/" title="Nightly builds">Nightly builds</a>
|
| </li>
|
| </ul>
|
| <h5>References</h5>
|
| <ul>
|
| <li class="none">
|
| <a href="apidocs/index.html" title="Javadoc">Javadoc</a>
|
| </li>
|
| <li class="none">
|
| <a href="https://issues.apache.org/jira/browse/JAMES" title="Issue Tracker">Issue Tracker</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>Mailet Container Configuration<a name="Mailet_Container_Configuration"></a></h2> |
| |
| <p>Consult <a class="externalLink" href="http://svn.apache.org/repos/asf/james/server/trunk/app/src/main/resources/mailetcontainer-template.xml">mailetcontainer-template.xml</a> in SVN to get some examples and hints.</p> |
| |
| <p>Changes between 3.0-M2 and 3.0-beta3:</p> |
| <ul> |
| <li>No more mailetpackage specification in mailetcontainer.xml</li> |
| <li>Exactly one standard package, hard-coded in source code</li> |
| <li>Standard package applied to mailet classnames without package prefix</li> |
| <li>All custom mailets must be specified with full package prefix</li> |
| <li>Package prefixed custom mailet names will be searched across the entire applicable class path</li> |
| <li>Composite matchers</li> |
| </ul> |
| <!-- <matcher name="anyname" match="org.apache.james.mailetcontainer.lib.matcher.And"> |
| <matcher match="SenderIs...."/> |
| <matcher match="SubjectStartsWith...."/> |
| </matcher> |
| <mailet match="anyname" class="MailetX"/> --> |
| <p>This configuration block is defined by the <b>mailserver</b> tag. All administrators |
| need to adjust the <b>mailserver</b> block upon installation.</p> |
| |
| <dl> |
| <dt><b>context.postmaster</b></dt> |
| <dd>The body of this element is the address that the server |
| will consider its postmaster address. This address will be listed as the sender address |
| of all error messages that originate from James. Also, all messages addressed to |
| postmaster@<servername>, where <servername> is one of the domain names whose |
| mail is being handled by James, will be redirected to this email address. |
| Set this to the appropriate email address for error reports |
| If this is set to a non-local email address, the mail server |
| will still function, but will generate a warning on startup.</dd> |
| <dt><b>spooler.threads</b></dt> |
| <dd>Number of simultaneous threads used to spool the mails.</dd> |
| </dl> |
| |
| <!-- <p>The SpoolManager is controlled by a single configuration block in the mailetcontainer.xml. |
| The spoolmanager tag defines the boundaries of the configuration block. The behavior of |
| the SpoolManager, most importantly the routing of mail messages through the processor tree, |
| is controlled by this block.</p> |
| |
| <p>The spoolmanager tag has only one children. It is:</p> |
| <ul> |
| <li><strong>threads</strong> - This is a required positive integer element. It specifies |
| the number of threads the SpoolManager will use to process messages in the spool. This |
| parameter tends to substantially impact performance, so it is advisable to tune it in production |
| configurations.</li> |
| </ul> |
| |
| <p>Spoolmanager depends on mailet and matcher packages, configured by these tags:</p> |
| <ul> |
| <li><strong>mailetpackages</strong> - This is a required container tag. It contains some number |
| of <strong>mailetpackage</strong> children. The body of each of these <strong>mailetpackage</strong> |
| elements is a Java package name. It is these packages that contain the classes to be instantiated |
| as mailets.</li> |
| <li><strong>matcherpackages</strong> - This is a required container tag. It contains some number |
| of <strong>matcherpackage</strong> children. The body of each of these <strong>matcherpackage</strong> |
| elements is a Java package name. It is these packages that contain the classes to be instantiated |
| as matchers.</li> |
| </ul> |
| |
| <p>The remaining SpoolManager configuration elements are complex enough to require a more in-depth |
| discussion.</p> |
| |
| <subsection name="Processor Configuration"> |
| |
| <p>In addition to the child elements discussed above, the SpoolManager tag can have several |
| <strong>processor</strong> children. It is these tags and their children that define the processor tree |
| for the SpoolManager.</p> |
| |
| <p>Each processor has a required attribute, <strong>name</strong>. The value of this attribute must be |
| unique for each processor tag. The name of a processor is significant. Certain processors are required |
| (specifically root and error). The name "ghost" is forbidden as a processor name, as it is used to denote |
| a message that should not undergo any further processing.</p> |
| |
| <p>The James SpoolManager creates a correspondance between processor names and the "state" of a mail as defined |
| in the Mailet API. Specifically, after each mailet processes a mail, the state of the message is examined. If |
| the state has been changed, the message does not continue in the current processor. If the new state is "ghost" |
| then processing of that message terminates completely. If the new state is anything else, the message is |
| re-routed to the processor with the name matching the new state.</p> |
| <p>The root processor is a required processor. All new messages that the SpoolManager finds on the spool are |
| directed to this processor.</p> |
| |
| <p>The error processor is another required processor. Under certain circumstances James itself will redirect messages |
| to the error processor. It is also the standard processor to which mailets redirect messages when an error |
| condition is encountered.</p> |
| |
| <p>The transport and spam processors are two useful, but optional, processors that are included in the out of |
| the box configuration. These processors include logic for actual mail delivery and spam handling respectively. More |
| information on these processors can be found in the default mailetcontainer.xml.</p> |
| |
| <p>Each processor element has zero or more <strong>mailet</strong> child elements. Each of these elements describes a |
| matcher/mailet pair. The ordering of the <strong>mailet</strong> children is crucial to the configuration, as |
| it is the order in which pairs will be traversed in the processor.</p> |
| |
| <p>It is this <strong>mailet</strong> element that is at the core of the SpoolManager configuration.</p> |
| |
| </subsection> --> |
| <div class="section"><h3>The Mailet Tag<a name="The_Mailet_Tag"></a></h3> |
| |
| <p>Consider the following simple <b>mailet</b> tag:</p> |
| <mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor"><br /> |
| <processor>spam</processor><br /> |
| </mailet><br /> |
| |
| <p>The mailet tag has two required attributes, <b>match</b> and <b>class</b>.</p> |
| |
| <p>The <b>match</b> attribute is set to the value of the specific Matcher class to be instantiated with a an |
| optional argument. If present, the argument is separated from the Matcher class name by an '='. Semantic |
| interpretation of the argument is left to the particular mailet.</p> |
| |
| <p>The <b>class</b> attribute is set to the value of the Mailet class that is to be instantiated.</p> |
| |
| <p>Finally, the children of the <b>mailet</b> tag define the configuration that is passed to the Mailet. The |
| tags used in this section should have no attributes or children. The names and bodies of the elements will be passed to |
| the mailet as (name, value) pairs.</p> |
| |
| <p>So in the example above, a Matcher instance of RemoteAddrNotInNetwork would be instantiated, and the value "127.0.0.1" |
| would be passed to the matcher. The Mailet of the pair will be an instance of ToProcessor, and it will be passed the (name, value) |
| pair of ("processor", "spam").</p> |
| |
| <p>Apache James Server includes a number of pre-packaged Mailets and Matchers. A list of provided Mailets may be found |
| <a href="dev-provided-mailets.html">here</a>. A list of provided Matchers may be found <a href="dev-provided-matchers.html">here</a>.</p> |
| |
| </div> |
| |
| </div> |
| |
| |
|
|
| </div>
|
| </div>
|
| <div class="clear">
|
| <hr/>
|
| </div>
|
| <div id="footer">
|
| <div class="xright">Copyright © 2002-2012
|
| <a href="http://www.apache.org/">The Apache Software Foundation</a>.
|
| All Rights Reserved.
|
|
|
| </div>
|
| <div class="clear">
|
| <hr/>
|
| </div>
|
| </div>
|
| </body>
|
| </html>
|