| <?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 2021-09-26 --> |
| <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 Project – 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="author" content="Serge Knystautas" /> |
| <meta name="Date-Revision-yyyymmdd" content="20210926" /> |
| <meta http-equiv="Content-Language" content="en" /> |
| |
| <!-- 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-logo.png"> |
| |
| |
| <img src="../../images/logos/james-logo.png" alt="James Project" /> |
| </a> |
| <a href="https://www.apache.org/index.html" id="bannerRight"> |
| |
| |
| <img src="images/logos/asf_logo_small.png" alt="The Apache Software Foundation" /> |
| </a> |
| <div class="clear"> |
| <hr/> |
| </div> |
| </div> |
| <div id="breadcrumbs"> |
| |
| |
| <div class="xleft"> |
| <span id="publishDate">Last Published: 2021-09-26</span> |
| </div> |
| <div class="xright"> <a href="../../index.html" title="Home">Home</a> |
| | |
| <a href="../../documentation.html" title="James">James</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> |
| |
| |
| </div> |
| <div class="clear"> |
| <hr/> |
| </div> |
| </div> |
| <div id="leftColumn"> |
| <div id="navcolumn"> |
| |
| |
| <h5>James components</h5> |
| <ul> |
| <li class="collapsed"> |
| <a href="../../documentation.html" title="About James">About James</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../../server/index.html" title="Server">Server</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../../mailet/index.html" title="Mailets">Mailets</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../../mailbox/index.html" title="Mailbox">Mailbox</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../../protocols/index.html" title="Protocols">Protocols</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../../mpt/index.html" title="MPT">MPT</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"> |
| |
| |
| |
| |
| <section> |
| <h2><a name="Configuration"></a>Configuration</h2> |
| |
| |
| <p> |
| |
| <blockquote> |
| |
| <p>This document explains the JAMES.conf.xml file for James 2.0 |
| <br />JAMES 2.0 uses a date-stamped version of Avalon from late September 2001. |
| The lib directory includes jars with date-stamped names for the Avalon libraries. |
| </br> |
| </p> |
| </blockquote> |
| |
| |
| </section> |
| |
| <section> |
| <h2><a name="James_Server_Configuration"></a>James Server Configuration</h2> |
| <section> |
| <h3><a name="James_Configuration"></a>James Configuration</h3> |
| |
| <p> |
| These tag elements control the JAMES spooling and identification |
| settings. |
| </p> |
| |
| <table class="bodyTable" border="1"> |
| |
| <tr class="a"> |
| |
| <th><name></th> |
| |
| <th>default value</th> |
| |
| <th>meaning</th> |
| </tr> |
| |
| <tr class="b"> |
| |
| <td> postmaster </td> |
| |
| <td> Postmaster@localhost </td> |
| |
| <td> Is the source of error replies and the email users will mail to for any problem. You |
| should change this to an address that can receive incoming messages.</td> |
| </tr> |
| |
| <tr class="a"> |
| |
| <td> helloName</td> |
| |
| <td> attribute autodetect=TRUE and value of 'myMailServer' </td> |
| |
| <td> The name by which James will identify itself in SMTP and POP3 |
| greetings. If autodetect is TRUE James will attempt to detect |
| automatically the name, failing which it will use 'localhost'. If |
| autodetect is not TRUE, James will use the specified name or |
| 'localhost' if none is specified. Look in jamesinfo.log for |
| lines like "[...] Local host is: [servername] and [...] Hello Name is: [machine name]"</td> |
| </tr> |
| |
| <tr class="b"> |
| |
| <td> servernames/servername</td> |
| |
| <td> attribute autodetect=TRUE and last value of 'localhost'</td> |
| |
| <td> A list of host names James will consider as local. Any user [user]@[servername] |
| will be considered to be local. If autodetect is TRUE James will attempt to detect |
| automatically the name and use any names specified. Look in jamesinfo.log for a line like "[...] Handling mail for:: [domain/host]"</td> |
| </tr> |
| |
| <tr class="a"> |
| |
| <td> spoolRepository </td> |
| |
| <td> file://var/mail/spool/ </td> |
| |
| <td> This is the path where incoming messages are stored before beeing processed. </td> |
| </tr> |
| |
| <tr class="b"> |
| |
| <td> inboxRepository </td> |
| |
| <td> file://var/mail/localinbox/ </td> |
| |
| <td> This is the root for local users inbox. Each user will have a personal folder |
| [inboxRepository]/[user] </td> |
| </tr> |
| |
| <tr class="a"> |
| |
| <td> spoolmanagerthreads </td> |
| |
| <td> 5 </td> |
| |
| <td> This is the number of thread that work polling mails from the spool and take care |
| of processing them. </td> |
| </tr> |
| </table> |
| </section> |
| |
| <section> |
| <h3><a name="SMTP_Server_Configuration"></a>SMTP Server Configuration</h3> |
| |
| <p> |
| These tag elements affect the SMTP listener (for incoming messages). |
| </p> |
| |
| |
| <table class="bodyTable" border="1"> |
| |
| <tr class="a"> |
| |
| <th><name></th> |
| |
| <th>default value</th> |
| |
| <th>meaning</th> |
| </tr> |
| |
| <tr class="b"> |
| |
| <td> port </td> |
| |
| <td> 25 </td> |
| |
| <td> The port we are listening to. </td> |
| </tr> |
| |
| <tr class="a"> |
| |
| <td> bind </td> |
| |
| <td> N.A. </td> |
| |
| <td> Specific IP addresses that you wish to bind this service to. </td> |
| </tr> |
| |
| <tr class="b"> |
| |
| <td> smtphandler </td> |
| |
| <td> N.A. </td> |
| |
| <td> Parent for all SMTPHandler configuations. </td> |
| </tr> |
| |
| <tr class="a"> |
| |
| <td> connectiontimeout </td> |
| |
| <td> 120000 </td> |
| |
| <td> If nothing is received from an open connection for more than {timeout] mills |
| the connection is closed. </td> |
| </tr> |
| </table> |
| </section> |
| |
| <section> |
| <h3><a name="POP3_Server_Configuration"></a>POP3 Server Configuration</h3> |
| |
| <p> |
| These tag elements affect the POP3 server (for message retrieval) |
| </p> |
| |
| <table class="bodyTable" border="1"> |
| |
| <tr class="a"> |
| |
| <th><name></th> |
| |
| <th>default value</th> |
| |
| <th>meaning</th> |
| </tr> |
| |
| <tr class="b"> |
| |
| <td> port </td> |
| |
| <td> 110 </td> |
| |
| <td> The port we are listening to. </td> |
| </tr> |
| |
| <tr class="a"> |
| |
| <td> bind </td> |
| |
| <td> N.A. </td> |
| |
| <td> Specific IP addresses that you wish to bind this service to. </td> |
| </tr> |
| |
| <tr class="b"> |
| |
| <td> useTLS </td> |
| |
| <td> false </td> |
| |
| <td> Whether you wish to require/use TLS (SSL) on this port. </td> |
| </tr> |
| |
| <tr class="a"> |
| |
| <td> pop3handler </td> |
| |
| <td> N.A. </td> |
| |
| <td> Parent for all POP3Handler configuations. </td> |
| </tr> |
| |
| <tr class="b"> |
| |
| <td> connectiontimeout </td> |
| |
| <td> 120000 </td> |
| |
| <td> If nothing is received from an open connection for more than {timeout] mills |
| the connection is closed. </td> |
| </tr> |
| </table> |
| </section> |
| |
| <section> |
| <h3><a name="Users_Manager_Configuration"></a>Users Manager Configuration</h3> |
| |
| <p> |
| These tag elements affect the configuration of the list of local users. |
| </p> |
| |
| <table class="bodyTable" border="1"> |
| |
| <tr class="a"> |
| |
| <th><name></th> |
| |
| <th>default value</th> |
| |
| <th>meaning</th> |
| </tr> |
| |
| <tr class="b"> |
| |
| <td> repository </td> |
| |
| <td> file://var/users/ </td> |
| |
| <td> The path where local mail account information are stored. </td> |
| </tr> |
| </table> |
| </section> |
| |
| <section> |
| <h3><a name="Remote_Manager_Configuration"></a>Remote Manager Configuration</h3> |
| |
| <p> |
| These tag elements affect the remote manager, a telnet based utility |
| to manage the User Manager. |
| </p> |
| |
| <table class="bodyTable" border="1"> |
| |
| <tr class="a"> |
| |
| <th><name></th> |
| |
| <th>default value</th> |
| |
| <th>meaning</th> |
| </tr> |
| |
| <tr class="b"> |
| |
| <td> port </td> |
| |
| <td> 4555 </td> |
| |
| <td> The port we are listening to. </td> |
| </tr> |
| |
| <tr class="a"> |
| |
| <td> bind </td> |
| |
| <td> N.A. </td> |
| |
| <td> Specific IP addresses that you wish to bind this service to. </td> |
| </tr> |
| |
| <tr class="b"> |
| |
| <td> useTLS </td> |
| |
| <td> false </td> |
| |
| <td> Whether you wish to require/use TLS (SSL) on this port. </td> |
| </tr> |
| |
| <tr class="a"> |
| |
| <td> administrator_accounts </td> |
| |
| <td> N.A. </td> |
| |
| <td> The parent of <account> </td> |
| </tr> |
| |
| <tr class="b"> |
| |
| <td> account </td> |
| |
| <td> login="root" password="root" </td> |
| |
| <td> A list of root account to administer JAMES. </td> |
| </tr> |
| |
| <tr class="a"> |
| |
| <td> connectiontimeout </td> |
| |
| <td> 120000 </td> |
| |
| <td> If nothing is received from an open connection for more than {timeout] mills</td> |
| </tr> |
| </table> |
| </section> |
| |
| <section> |
| <h3><a name="Transport_Configuration"></a>Transport Configuration</h3> |
| |
| <p> |
| These tag elements affect SMTP remote delivery, specifically, DNS |
| lookup functionality. |
| </p> |
| |
| <table class="bodyTable" border="1"> |
| |
| <tr class="a"> |
| |
| <th><name></th> |
| |
| <th>default value</th> |
| |
| <th>meaning</th> |
| </tr> |
| |
| <tr class="b"> |
| |
| <td> dnsServer/servers/server </td> |
| |
| <td> N.A. </td> |
| |
| <td> This is a list of DNS to resolve external address. </td> |
| </tr> |
| |
| <tr class="a"> |
| |
| <td> authoritative </td> |
| |
| <td> false </td> |
| |
| <td> Whether to require authoritative (non-cached) DNS records. Should always be false |
| unless you understand the implications. </td> |
| </tr> |
| |
| <tr class="b"> |
| |
| <td> repository </td> |
| |
| <td> file://var/mail/delayed/ </td> |
| |
| <td> This is a temp repository path shared with the name of "TMP_REPOSITORY". |
| It is used by the RemoteDelivery Mailet to store mail for futher delivery. |
| (Note: this is not very elegant and will probally change soon) </td> |
| </tr> |
| |
| <tr class="a"> |
| |
| <td> mailets </td> |
| |
| <td> rootpath="org.apache.james.transport.mailets." </td> |
| |
| <td> This is the parent node for all mailet configurations. The rootpath specify |
| where mailet repository is. (Note: need to plug more than one repository) </td> |
| </tr> |
| </table> |
| </section> |
| </section> |
| |
| <section> |
| <h2><a name="The_Mailet_processor_pipeline"></a>The Mailet processor pipeline</h2> |
| |
| <p> |
| This is James sitemap. It defines how each incoming mail will be |
| processed. Incoming mails begins their process at the first mailet in the |
| pipe. Each step is described by a <servet> tag with some attributes: |
| <mailet match="[matchClass]=[matchParameters]" |
| class="[mailetClass]">. |
| The Matcher class split the mail into two Collections: one with all recipients |
| matching conditions and the other with all recipient not matching. All information |
| in the mail except recipients cloned so the message that both matching and not matching |
| are identical (again except recipients). The matching recipients and mail will be passed to |
| the specified mailet for processing. After processing both mails, the |
| untouched not-matching mail and the processed matching mail, each go to next step in |
| the processor. Some mailets will indicate the mail should be consumed and no continue processing. |
| The Null mailet for example will simply consume any incoming mail as will the RemoteDelivery |
| since after delivery the mail needs no more processing. |
| </p> |
| |
| <section> |
| <h3><a name="Matchers"></a>Matchers</h3> |
| |
| <p> |
| The Matcher interface defines how match class should work. Their work is |
| to split a Vector of recipients into two: the ones matching a specified |
| condition and all others. |
| Currently implemented matchers: |
| </p> |
| |
| <table class="bodyTable" border="1"> |
| |
| <tr class="a"> |
| |
| <th>class name</th> |
| |
| <th>parameter</th> |
| |
| <th>action</th> |
| |
| <th>example</th> |
| </tr> |
| |
| <tr class="b"> |
| |
| <td> All </td> |
| |
| <td> none </td> |
| |
| <td> match all recipients. </td> |
| |
| <td> match="All" </td> |
| </tr> |
| |
| <tr class="a"> |
| |
| <td> HasAttachment </td> |
| |
| <td> none </td> |
| |
| <td> match all recipients if the message has an attachment (if content type is multipart/mixed). </td> |
| |
| <td> match="All" </td> |
| </tr> |
| |
| <tr class="b"> |
| |
| <td> HostIs </td> |
| |
| <td> comma separated list of hosts names </td> |
| |
| <td> match all recipients belonging to one of the specified hosts </td> |
| |
| <td> match="HostIs=myHost.mydom.org,yourHost" </td> |
| </tr> |
| |
| <tr class="a"> |
| |
| <td> HostIsLocal </td> |
| |
| <td> none </td> |
| |
| <td> check recipients's hosts against the list of host names set in configuration for localhost |
| (see <servername>). </td> |
| |
| <td> match="HostIsLocal" </td> |
| </tr> |
| |
| <tr class="b"> |
| |
| <td> InSpammerBlacklist </td> |
| |
| <td> DNS zone with blacklist </td> |
| |
| <td> match all recipients if mail received from an IP address on the blacklist. </td> |
| |
| <td> match="InSpammerBlacklist=blackholes.mail-abuse.org" </td> |
| </tr> |
| |
| <tr class="a"> |
| |
| <td> IsSingleRecipient </td> |
| |
| <td> none </td> |
| |
| <td> match mail if only has 1 recipient. </td> |
| |
| <td> match="IsSingleRecipient" </td> |
| </tr> |
| |
| <tr class="b"> |
| |
| <td> NESSpamCheck </td> |
| |
| <td> none </td> |
| |
| <td> match all recipients if mail matches various spam detection rules. </td> |
| |
| <td> match="NESSpamCheck" </td> |
| </tr> |
| |
| <tr class="a"> |
| |
| <td> RecipientIs </td> |
| |
| <td> comma separated list of recipients </td> |
| |
| <td> match all recipients defined in condition. </td> |
| |
| <td> match="RecipientIs=root@localhost,admin@localhost" </td> |
| </tr> |
| |
| <tr class="b"> |
| |
| <td> RecipientIsLocal </td> |
| |
| <td> none </td> |
| |
| <td> match recipient which host is local (see HostIsLocal) and that are recognized by the |
| Users Manager to be local accounts. </td> |
| |
| <td> match="RecipientIsLocal" </td> |
| </tr> |
| |
| <tr class="a"> |
| |
| <td> RelayLimit </td> |
| |
| <td> Maximum number of hops. </td> |
| |
| <td> match all recipients if the message has more than the specified number of SMTP hops. |
| Important to prevent race conditions in SMTP delivery. |
| </td> |
| |
| <td> match="RelayLimit=30" </td> |
| </tr> |
| |
| <tr class="b"> |
| |
| <td> RemoteAddrInNetwork </td> |
| |
| <td> comma separated list of network addresses </td> |
| |
| <td> match all recipients if the message was received from an IP address that matches the |
| comma separated list. Wildcards are supposed, e.g., 192.168.0.* is a valid option. |
| </td> |
| |
| <td> match="RemoteAddrInNetwork=127.0.0.1,192.168.*" </td> |
| </tr> |
| |
| <tr class="a"> |
| |
| <td> RemoteAddrNotInNetwork </td> |
| |
| <td> comma separated list of network addresses </td> |
| |
| <td> match all recipients if the message was not received from an IP address that matches |
| the comma separated list. Wildcards are supposed, e.g., 192.168.0.* is a valid option. |
| </td> |
| |
| <td> match="RemoteAddrNotInNetwork=127.0.0.1,192.168.*" </td> |
| </tr> |
| |
| <tr class="b"> |
| |
| <td> SenderInFakeDomain </td> |
| |
| <td> none </td> |
| |
| <td> match recipients who's domain name portion of their email address is invalid. Queries |
| for A, CNAME, and MX record entries. </td> |
| |
| <td> match="SenderInFakeDomain" </td> |
| </tr> |
| |
| <tr class="a"> |
| |
| <td> SenderIs </td> |
| |
| <td> comma separated list of address. </td> |
| |
| <td> match all recipients if sender is in the condition string, else match none. </td> |
| |
| <td> match="SenderIs=badBay@badhost" </td> |
| </tr> |
| |
| <tr class="b"> |
| |
| <td> SizeGreaterThan </td> |
| |
| <td> number of bytes. supports 'k' and 'm' suffixes. </td> |
| |
| <td> match all recipients if message is larger than the given number of bytes, kilobytes, or megabytes. </td> |
| |
| <td> match="SizeGreaterThan=1m" </td> |
| </tr> |
| |
| <tr class="a"> |
| |
| <td> SubjectIs </td> |
| |
| <td> comma separated list of address. </td> |
| |
| <td> match all recipients if the subject is equal to the condition string, else match none. </td> |
| |
| <td> match="SubjectIs=REMOVE" </td> |
| </tr> |
| |
| <tr class="b"> |
| |
| <td> SubjectStartsWith </td> |
| |
| <td> comma separated list of address. </td> |
| |
| <td> match all recipients if the subject starts with the condition string, else match none. </td> |
| |
| <td> match="SubjectStartsWith: [ADV]" </td> |
| </tr> |
| |
| <tr class="a"> |
| |
| <td> UserIs </td> |
| |
| <td> comma separated list of accounts </td> |
| |
| <td> match all recipients defined in condition regardless of host. </td> |
| |
| <td> match="UserIs=root,admin" </td> |
| </tr> |
| </table> |
| |
| <p> |
| Some examples: |
| <br /> |
| - <mailet match="RecipientIsLocal" |
| class="LocalDelivery"> |
| </br> |
| <br /> |
| - <mailet match="UserIs=root" |
| class="Forward"> |
| </br> |
| <br /> |
| - <mailet match="SenderIs=badBoy@myhost,badGirl@yourhost" |
| class="Null"> |
| </br> |
| </p> |
| </section> |
| |
| <section> |
| <h3><a name="Mailet"></a>Mailet</h3> |
| |
| <p> |
| Mailet are classes that process a message. They are |
| passed a Mail object on which they can perform any kind of task. |
| Clever use of mailets allow you to write an email-based application. |
| Simple mailets provide basic mail functionality like mail forwarding, |
| mailing list, "I'm on vacation" message, mail logging etc. As simply as |
| these mailet, you can write and deploy your own mailet to perform any kind of task. |
| <br /> |
| Here you are some of the mailets bundled with James along with their configuration: |
| </br> |
| </p> |
| <b>Null</b> |
| |
| <blockquote> |
| Consume any incoming mail. No configuration needed. |
| <br /> |
| <mailet match="SenderIs=badBoy@badhost" class="Null"> |
| </mailet> |
| </br> |
| </blockquote> |
| <b>debug.Identity</b> |
| |
| <blockquote> |
| Leave any incoming mail untouched. A debug mailet |
| (not really useful). |
| No configuration needed. |
| <br /> |
| <mailet match="All" class="Identity"> |
| </mailet></br> |
| </blockquote> |
| <b>Forward</b> |
| |
| <blockquote> |
| <br /> |
| Replace the recipient list with recipient specified in |
| configurations.</br> |
| <br /> |
| <mailet match="RecipientIs=root@localhost" |
| class="Forward"></br> |
| |
| <blockquote> |
| <br /> |
| <forwardto> green@blue.org </forwardto> |
| <forwardto> red@yellow.com </forwardto> |
| </br> |
| </blockquote> |
| </mailet> |
| </blockquote> |
| |
| <b>ToProcessor</b> |
| |
| <blockquote> |
| Sends the incoming mail object to a new processor pipeline. |
| root and error are special processors that |
| should always be defined. |
| <br /> |
| <mailet match="RecipientIsLocal" class="ToProcessor"> |
| </br> |
| |
| <blockquote> |
| <processor> localdelivery </processor> |
| </blockquote> |
| </mailet> |
| </blockquote> |
| |
| <b>ServerTime</b> |
| |
| <blockquote> |
| Replies to the sender with a short message with the current time. |
| No configuration needed. |
| <br /> |
| <mailet match="RecipientIs=time@localhost" class="ServerTime"> |
| </br> |
| </mailet> |
| </blockquote> |
| |
| <b>ToRepository</b> |
| |
| <blockquote> |
| Stores mails in the specified MailRepository. Useful for mail logging |
| etc. If the passThrough parameter is false the mail will be consumed, if true |
| it will be returned untouched to the pipe. |
| <br /> |
| <mailet match="RecipientIs=root@localhost" |
| class="ToRepository"> |
| </br> |
| |
| <blockquote> |
| <br /> |
| <repositoryPath> file://var/mail/logAdmin |
| </repositoryPath> |
| </br> |
| <br /> |
| <passThrough> true </passThrough> (default false) |
| </br> |
| </blockquote> |
| </mailet> |
| </blockquote> |
| |
| <b>LocalDelivery</b> |
| |
| <blockquote> |
| Store mail in the local inbox, one folder for each user. |
| <br /> |
| <mailet match="RecipientIsLocal" class="LocalDelivery"> |
| </br> |
| </mailet> |
| </blockquote> |
| |
| <b>RemoteDelivery</b> |
| |
| Relays mails to remote hosts. "delayTime" is the time in mills the |
| mailet will wait before retrying sending a mail which fail at first time. "maxRetries" |
| is the number of retries before sending back to sender the mail. <br /> |
| <mailet match="!RecipientIsLocal" class="RemoteDelivery"> |
| </br> |
| |
| <blockquote> |
| <br /> |
| <delayTime> 21600000 </delayTime> |
| </br> |
| <br /> |
| <maxRetries> 5 </maxRetries> |
| </br> |
| </blockquote> |
| |
| |
| <p></mailet> </p> |
| |
| <b>Redirect</b> |
| |
| <dl> |
| <dt>A mailet providing configurable redirection services<br /></br> |
| This mailet can produce listserver, forward and notify behaviour, with the |
| original message intact, attached, appended or left out altogether.<br /></br> |
| This built in functionality is controlled by the configuration as laid out |
| below.</dt> |
| </dl> |
| |
| <p>However it is also designed to be easily subclassed to make authoring redirection |
| mailets simple. <br /></br> |
| By extending it and overriding one or more of its methods new behaviour can |
| be quickly created without the author having to address any other issue than |
| the relevant one. For more information see the javadocs</p> |
| |
| <p>The configuration parameters are:</p> |
| |
| <table class="bodyTable" border="1"> |
| |
| <tr class="a"> |
| |
| <th>param</th> |
| |
| <th>desc</th> |
| |
| </tr> |
| |
| <tr class="b"> |
| |
| <td><recipients></td> |
| |
| <td>A comma delimited list of email addresses for recipients of this message, |
| it will use the "to" list if not specified. These addresses |
| will only appear in the To: header if no "to" list is supplied.</td> |
| </tr> |
| |
| <tr class="a"> |
| |
| <td><to></td> |
| |
| <td>A comma delimited list of addresses to appear in the To: header, the |
| email will only be delivered to these addresses if they are in the recipients |
| list.<br /> |
| </br> |
| The recipients list will be used if this is not supplied</td> |
| </tr> |
| |
| <tr class="b"> |
| |
| <td><sender></td> |
| |
| <td>A single email address to appear in the From: header <br /> |
| </br> |
| It can include constants "sender" and "postmaster"</td> |
| </tr> |
| |
| <tr class="a"> |
| |
| <td><message></td> |
| |
| <td>A text message to be the body of the email. Can be omitted.</td> |
| </tr> |
| |
| <tr class="b"> |
| |
| <td><inline></td> |
| |
| <td> |
| |
| <p>One of the following items:</p> |
| |
| <ul> |
| |
| <li>unaltered The original message is the new |
| message, for forwarding/aliasing</li> |
| |
| <li>heads The |
| headers of the original message are appended to the message</li> |
| |
| <li>body The |
| body of the original is appended to the new message</li> |
| |
| <li>all Both |
| headers and body are appended</li> |
| |
| <li>none Neither |
| body nor headers are appended</li> |
| </ul> |
| </td> |
| </tr> |
| |
| <tr class="a"> |
| |
| <td><attachment></td> |
| |
| <td> |
| |
| <p>One of the following items:</p> |
| |
| <ul> |
| |
| <li>heads The headers of the original |
| are attached as text</li> |
| |
| <li>body The body of the original |
| is attached as text</li> |
| |
| <li>all Both |
| headers and body are attached as a single text file</li> |
| |
| <li>none Nothing is attached</li> |
| |
| <li>message The original message is attached as type message/rfc822, |
| this means that it can, in many cases, be opened, resent, fw'd, replied |
| to etc by email client software.</li> |
| </ul> |
| </td> |
| </tr> |
| |
| <tr class="b"> |
| |
| <td><passThrough></td> |
| |
| <td>TRUE or FALSE, if true the original message continues in the mailet |
| processor after this mailet is finished. False causes the original to |
| be stopped.</td> |
| </tr> |
| |
| <tr class="a"> |
| |
| <td><attachError></td> |
| |
| <td>TRUE or FALSE, if true any error message available to the mailet is |
| appended to the message body (except in the case of inline == unaltered)</td> |
| </tr> |
| |
| <tr class="b"> |
| |
| <td><replyto></td> |
| |
| <td>A single email address to appear in the Rely-To: header, can also be |
| "sender" or "postmaster", this header is not set if |
| this is omited.</td> |
| </tr> |
| |
| <tr class="a"> |
| |
| <td><prefix></td> |
| |
| <td>An optional subject prefix prepended to the original message subject, |
| for example..<br /> |
| </br> |
| Undeliverable mail:</td> |
| </tr> |
| |
| <tr class="b"> |
| |
| <td><static></td> |
| |
| <td> |
| |
| <p>TRUE or FALSE, if this is true it hints to the mailet that none of |
| the parameters are set dynamically, and therefore they can be set once |
| in the init method.<br /></br> |
| False tells the mailet to call all the "getters" for every |
| mail processed.</p> |
| |
| <p>This defaults to false.<br /></br> |
| It should be TRUE in all cases, except where one of the getter methods |
| has been overriden to provide dynamic values, such as a listserve which |
| might override getRecipients() to get a list from a users repository.</p> |
| </td> |
| </tr> |
| </table> |
| |
| <table class="bodyTable" border="1"> |
| |
| <tr class="a"> |
| <th> |
| |
| <p>Example, creates a distribution list:</p></th></tr> |
| <tr class="b"> |
| <td> |
| |
| <p> <mailet match="RecipientIs=test@localhost" class="Redirect"><br /></br> |
| <recipients>x@localhost, y@localhost, z@localhost</recipients><br /></br> |
| <to>list@localhost</to><br /></br> |
| <sender>owner@localhost</sender><br /></br> |
| <message>sent on from James</message><br /></br> |
| <inline>unaltered</inline><br /></br> |
| <passThrough>FALSE</passThrough><br /></br> |
| <replyto>postmaster</replyto><br /></br> |
| <prefix>[test mailing]</prefix><br /></br> |
| <static>TRUE</static><br /></br> |
| <passThrough>FALSE</passThrough><br /></br> |
| </mailet><br /></br> |
| </p></td></tr></table> |
| |
| <table class="bodyTable" border="1"> |
| |
| <tr class="a"> |
| <th> |
| |
| |
| <p>and this sends a spam notification to the postmaster <br /></br>with the original message |
| attached as a message, and a subject prefix:</p></th></tr> |
| <tr class="b"> |
| <td> |
| |
| <p> <mailet match="All" class="Redirect"><br /></br> |
| <recipients>x@localhost</recipients><br /></br> |
| <sender>postmaster</sender><br /></br> |
| <message>Message marked as spam:<br /></br> |
| </message><br /></br> |
| <inline>heads</inline><br /></br> |
| <attachment>message</attachment><br /></br> |
| <passThrough>FALSE</passThrough><br /></br> |
| <attachError>TRUE</attachError><br /></br> |
| <replyto>postmaster</replyto><br /></br> |
| <prefix>[spam notification]</prefix><br /></br> |
| <static>TRUE</static><br /></br> |
| <passThrough>FALSE</passThrough><br /></br> |
| </mailet></p> |
| </td></tr></table> |
| </section> |
| </section> |
| |
| |
| |
| </div> |
| </div> |
| <div class="clear"> |
| <hr/> |
| </div> |
| <div id="footer"> |
| <div class="xright">Copyright © 2006-2021 |
| <a href="https://www.apache.org/">The Apache Software Foundation</a>. |
| All Rights Reserved. |
| |
| </div> |
| <div class="clear"> |
| <hr/> |
| </div> |
| </div> |
| </body> |
| </html> |