<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">










<html>
  <head>
    <title>James Server - 
  James 2.3 - Writing a Custom Mailet</title>
    <style type="text/css" media="all">
      @import url("./css/maven-base.css");
      @import url("./css/maven-theme.css");
      @import url("./css/site.css");
    </style>
    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
      </head>
  <body class="composite">
    <div id="banner">
                  <a href="http://james.apache.org/index.html" id="bannerLeft">
    
                                            <img src="images/james-server-logo.gif" alt="" />
    
            </a>
                        <a href="http://www.apache.org/index.html" id="bannerRight">
    
                                            <img src="images/asf-logo-reduced.gif" alt="" />
    
            </a>
            <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
          
  

  
    
  
  
            <div class="xleft">
        Last Published: 05/28/2009
                      </div>
            <div class="xright">      <a href="../../index.html">JAMES Project</a>
          |
          <a href="../../server/index.html">Server</a>
          |
          <a href="../../mailet/index.html">Mailets</a>
          |
          <a href="../../jspf/index.html">jSPF</a>
          |
          <a href="../../mime4j/index.html">Mime4J</a>
          |
          <a href="../../jsieve/index.html">JSieve</a>
          |
          <a href="../../postage/index.html">Postage</a>
          
  

  
    
  
  
  </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
           
  

  
    
  
  
                   <h5>James Server</h5>
        <ul>
              
    <li class="none">
              <a href="../index.html">Overview</a>
        </li>
              
    <li class="none">
              <a href="../design_objectives.html">Objectives</a>
        </li>
              
          
              
      
              
        <li class="expanded">
              <a href="../FAQ.html">James FAQ</a>
                <ul>
                  
    <li class="none">
              <a href="../james_and_sendmail.html">James and Sendmail</a>
        </li>
              </ul>
        </li>
              
    <li class="none">
              <a href="http://wiki.apache.org/james">Wiki</a>
        </li>
              
    <li class="none">
              <a href="../rfclist.html">Useful RFCs</a>
        </li>
          </ul>
          <h5>Overview</h5>
        <ul>
              
    <li class="none">
              <a href="index.html">Introduction</a>
        </li>
              
    <li class="none">
              <a href="release-notes.html">Release Notes</a>
        </li>
              
    <li class="none">
              <a href="jira-report.html">Changes</a>
        </li>
          </ul>
          <h5>Concepts</h5>
        <ul>
              
    <li class="none">
              <a href="summary.html">Summary</a>
        </li>
              
    <li class="none">
              <a href="spoolmanager.html">SpoolManager</a>
        </li>
              
    <li class="none">
              <a href="repositories.html">Repositories</a>
        </li>
              
    <li class="none">
              <a href="mailet_api.html">The Mailet API</a>
        </li>
          </ul>
          <h5>How to...</h5>
        <ul>
              
    <li class="none">
              <a href="build_instructions.html">Build James</a>
        </li>
              
    <li class="none">
              <a href="installation_instructions.html">Install James</a>
        </li>
          </ul>
          <h5>Mailets</h5>
        <ul>
              
    <li class="none">
              <a href="http://james.apache.org/mailet/index.html">Overview</a>
        </li>
              
    <li class="none">
              <a href="http://james.apache.org/mailet/api/index.html">API</a>
        </li>
              
    <li class="none">
              <a href="http://james.apache.org/mailet/base/index.html">Basic Toolkit</a>
        </li>
              
    <li class="none">
              <a href="http://james.apache.org/mailet/crypto/index.html">Crypto</a>
        </li>
              
    <li class="none">
              <a href="http://james.apache.org/mailet/standard/index.html">Sieve</a>
        </li>
              
    <li class="none">
              <a href="http://james.apache.org/mailet/maven-mailetdocs-plugin/index.html">MailetDocs</a>
        </li>
              
    <li class="none">
              <a href="james-server-mailets-function/mailet-report.html">Server</a>
        </li>
              
    <li class="none">
              <a href="http://james.apache.org/mailet/standard/index.html">Standard</a>
        </li>
          </ul>
          <h5>Configuration</h5>
        <ul>
              
    <li class="none">
              <a href="dns_configuration.html">DNS Server</a>
        </li>
              
    <li class="none">
              <a href="pop3_configuration.html">POP3 Server</a>
        </li>
              
    <li class="none">
              <a href="smtp_configuration.html">SMTP Server</a>
        </li>
              
    <li class="none">
              <a href="nntp_configuration.html">NNTP Server</a>
        </li>
              
    <li class="none">
              <a href="fetchmail_configuration.html">FetchMail</a>
        </li>
              
    <li class="none">
              <a href="remotemanager_configuration.html">RemoteManager</a>
        </li>
              
    <li class="none">
              <a href="spoolmanager_configuration.html">SpoolManager</a>
        </li>
              
    <li class="none">
              <a href="serverwide_configuration.html">Server-wide</a>
        </li>
              
    <li class="none">
              <a href="adding_users.html">Adding Users</a>
        </li>
              
    <li class="none">
              <a href="provided_matchers.html">Provided Matchers</a>
        </li>
              
    <li class="none">
              <a href="provided_mailets.html">Provided Mailets</a>
        </li>
          </ul>
          <h5>Common Configurations</h5>
        <ul>
              
    <li class="none">
              <a href="smtp_auth.html">Using SMTP AUTH</a>
        </li>
              
    <li class="none">
              <a href="using_database.html">Using a Database with James</a>
        </li>
              
    <li class="none">
              <a href="usingTLS.html">Using TLS/SSL</a>
        </li>
              
    <li class="none">
              <a href="mailing_lists.html">Creating Mailing Lists</a>
        </li>
          </ul>
          <h5>Customization</h5>
        <ul>
              
    <li class="none">
              <a href="custom_matcher.html">How to write a custom Matcher</a>
        </li>
              
    <li class="none">
              <strong>How to write a custom Mailet</strong>
        </li>
          </ul>
          <h5>Project Documentation</h5>
        <ul>
              
                
              
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
              
        <li class="collapsed">
              <a href="project-info.html">Project Information</a>
              </li>
              
                
              
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
              
        <li class="collapsed">
              <a href="project-reports.html">Project Reports</a>
              </li>
          </ul>
          <h5>Project</h5>
        <ul>
              
    <li class="none">
              <a href="http://issues.apache.org/jira/browse/JAMES">Bug Database</a>
        </li>
              
    <li class="none">
              <a href="http://svn.apache.org/viewvc/james/server/">Source Code</a>
        </li>
              
    <li class="none">
              <a href="../todo.html">TODO</a>
        </li>
          </ul>
          <h5>Downloads</h5>
        <ul>
              
    <li class="none">
              <a href="../../download.cgi">Stable releases</a>
        </li>
              
    <li class="none">
              <a href="../../downloadunstable.cgi">Unstable releases</a>
        </li>
              
    <li class="none">
              <a href="http://people.apache.org/builds/james/nightly/">Nightly builds</a>
        </li>
          </ul>
                                       <a href="http://maven.apache.org/" title="Built by Maven" id="poweredBy">
            <img alt="Built by Maven" src="./images/logos/maven-feather.png"></img>
          </a>
                       
  

  
    
  
  
        </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
        

 


<a name="Writing a Custom Mailet"></a><div class="section"><h2>Writing a Custom Mailet</h2>
<p>Implementing a custom mailet is generally a simple task, most of whose complexity 
lies in coding the actual work to be done by the mailet.  This is largely due to the 
simplicity of the Mailet interface and the fact that a GenericMailet class is provided 
as part of the Mailet package.</p>
<p>In this discussion we will assume that any mailet being implemented is a subclass of 
GenericMailet.  The GenericMailet class serves to abstract away of the configuration and 
logging details.  While it provides a noop implementation of the init() and destroy() methods, 
these can be easily overridden to provide useful functionality.</p>
<p>In general, the only four methods that you should need to implement are init(), destroy(), 
getMailetInfo(), and service(Mail).  And only the last is required in all cases.</p>
<a name="Configuration"></a><div class="section"><h3>Configuration</h3>
<p>As described in the <a href="spoolmanager_configuration.html">SpoolManager configuration 
section</a>, mailets are configured with a set of String (name, value) pairs.  These values are
passed into the Mailet upon initialization (although the details of this process are hidden by 
the GenericMailet implementation).  GenericMailet provides access to this configuration 
information through use of the getInitParameter(String) method.  Passing in the name of the 
requested configuration value will yield the value if set, and null otherwise.  Configuration 
values are available inside the init(), destroy(), and service(Mail) methods.</p>
</div>
<a name="Logging"></a><div class="section"><h3>Logging</h3>
<p>There is a simple logging mechanism provided by the Mailet API.  It does not support 
logging levels, so any log filtering will have to be implemented in the Mailet code.  
Logging is done by calling one of the two logging methods on GenericMailet - log(String) 
or log(String,Throwable).  Logging is available inside the init(), destroy(), and service(Mail)
methods.</p>
<p>The value of getMailetInfo() for the Mailet is prepended to the log entries for that 
Mailet.  So it may be desirable for you to override this method so you can distinguish mailet
log entries by Mailet.</p>
</div>
<a name="Initialization"></a><div class="section"><h3>Initialization</h3>
<p>As part of the Mailet lifecycle, a Mailet is guaranteed to be initialized immediately after 
being instantiated.  This happens once and only once for each Mailet instance.  The 
Initialization phase is where configuration parsing and per-Mailet resource creation generally 
take place.  Depending on your Mailet, it may or may not be necessary to do any initialization 
of the mailet.  Initialization logic is implemented by overriding the init() method of 
GenericMailet.</p>
</div>
<a name="Servicing"></a><div class="section"><h3>Servicing</h3>
<p>The bulk of the Mailet logic is expected to be invoked from the service(Mail) method.  This 
method is invoked each time a mail message is to be processed by the mailet.  The message is 
passed in as an instance of the Mail interface, which is part of the Mailet API.</p>
<p>The Mail interface is essentially a light wrapper around JavaMail's MimeMessage class with a 
few important differences.  See the Javadoc for the interface for a description of the additional
methods available on this wrapper.</p>
</div>
<a name="Destruction"></a><div class="section"><h3>Destruction</h3>
<p>As part of the Mailet lifecycle, a Mailet is guaranteed to be destroyed when the container 
cleans up the Mailet.  This happens once and only once for each Mailet instance.  The 
Destruction phase is where per-Mailet resource release generally takes place.  Depending 
on your Mailet, it may or may not be necessary to do any destruction 
of the mailet.  Destruction logic is implemented by overriding the destroy() method of 
GenericMailet.</p>
</div>
</div>
<a name="Deploying a Custom Mailet"></a><div class="section"><h2>Deploying a Custom Mailet</h2>
<p>Once a Mailet has been successfully implemented there are only a couple of 
additional steps necessary to actually deploy the Mailet.</p>
<a name="Adding Your Mailet to the Classpath"></a><div class="section"><h3>Adding Your Mailet to the Classpath</h3>
<p>
The Mailet must be added to James' classpath so that the Mailet can be loaded by James.  There 
are three ways to add a custom Mailet to the classpath so that James will be able to load the 
Mailet.  These are:
</p>
<p>
1a. Download the source distribution, add a jar file containing the custom files to the lib 
directory of the unpacked source distribution, and build a new .sar file by following the 
directions <a href="build_instructions.html">here</a>.  This new .sar file will now 
include your custom classes.
</p>
<p>
or
</p>
<p>
1b. Place a jar file containing the custom class files in the lib subdirectory of the James
installation.  It will also be necessary to unpack the JavaMail and James jar files from 
the provided .sar file and add them to this directory.
</p>
<p>
or
</p>
<p>
1c. Place a jar file containing the custom class files in the path/to/james/apps/james/SAR-INF/lib subdirectory.
Please note that you must start james once to get the apps/james/SAR-INF directory created. After that is done create 
the lib directory and copy the jar to the directory.
</p>
<p>
2. After this is done get sure you add the mailet package to the config.xml. For example: 
<p>
<div class="source"><pre>
&lt;!-- Set the Java packages from which to load mailets and matchers --&gt;
&lt;mailetpackages&gt;
    &lt;mailetpackage&gt;org.apache.james.transport.mailets&lt;/mailetpackage&gt;
    &lt;mailetpackage&gt;org.apache.james.transport.mailets.smime&lt;/mailetpackage&gt;
    &lt;mailetpackage&gt;your.costum.package.transport-mailets&lt;/mailetpackage&gt;
&lt;/mailetpackages&gt;
</pre></div>
</p>
After that restart james.
</p>
</div>
<a name="James Configuration"></a><div class="section"><h3>James Configuration</h3>
<p>Configuration of the processor chain is discussed 
<a href="spoolmanager_configuration.html">elsewhere</a> in this documentation.  The 
details of configuring mailet deployment is discussed at length.  Here we will only comment 
that it is important to add the appropriate mailet package for your custom mailet to the 
&lt;mailetpackages&gt; list and that the name of your mailet should not conflict with any of 
the mailets described <a href="provided_mailets.html">here</a>.
</p>
</div>
</div>


      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">&#169;  
          2002-2009
    
          The Apache Software Foundation
          
  

  
    
  
  
  </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
    </script>
    <script type="text/javascript">
      _uacct = "UA-1384591-1";
      urchinTracker();
    </script>
  </body>
</html>
