james-server-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Norman Maurer <norman.mau...@googlemail.com>
Subject Re: Trouble with James mail server: the email message can't be send
Date Fri, 12 Mar 2010 20:09:55 GMT
Hi there,

what OS and what james version you use ?

Thx,
Norman

2010/3/12 G Bear <gbear7777@gmail.com>:
> Hi,
>
> We are using James mail server to relay email messages generated from
> another application, to a remote server. We use a DNS to resolve the IP
> address of the remote server.
>
> The configuration works fine, but in some times the email messages are
> "stuck" in the outgoing folder.
>
> We did review the log files, but we haven't found an error in them.
> Apparently all components are working fine, but these emails haven't been
> send.
>
> Do you have any idea to resolve this problem?
>
> Below you can find the content of config.xml file what we are using.
>
> <?xml version="1.0"?>
> <!DOCTYPE config [
> <!ENTITY listserverConfig SYSTEM "../conf/james-listmanager.xml">
> <!ENTITY listserverStores SYSTEM "../conf/james-liststores.xml">
> <!ENTITY fetchmailConfig SYSTEM "../conf/james-fetchmail.xml">
> <!ENTITY smtphandlerchainConfig SYSTEM "../conf/james-smtphandlerchain.xml">
> ]>
> <!--
>  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.
> -->
> <!--  Configuration file for the ASF James server -->
> <!--  This file contains important settings that control the behaviour -->
> <!--  of all of the services and repositories. -->
> <!--                               README!                            -->
> <!-- This configuration file is designed to run without alteration for
> simple tests. -->
> <!-- It assumes you have a DNS server on localhost and assigns a root
> password of root. -->
> <!-- In case the defaults do not suit you, the items you are most likely to
> need to change -->
> <!-- are preceded by a CHECKME! or CONFIRM? comment in the left margin. -->
> <!-- For production use you will probably need to make more extensive
> changes, see -->
> <!-- http://james.apache.org/server/2.3.0/ -->
> <!-- $Revision: 776655 $ Committed on $Date: 2009-05-20 11:43:57 +0100 (Wed,
> 20 May 2009) $ by: $Author: rdonkin $ -->
> <config>
>   <James>
> <!-- CHECKME! -->
>      <!-- This is the postmaster email address for this mail server. -->
>      <!-- 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. -->
>      <postmaster>Postmaster@localhost</postmaster>
>      <!-- servernames identifies the DNS namespace served by this instance
> of James. -->
>      <!-- These servernames are used for both matcher/mailet processing and
> SMTP auth -->
>      <!-- to determine when a mail is intended for local delivery. -->
>      <!-- -->
>      <!-- If autodetect is TRUE, James wil attempt to discover its own host
> name AND -->
>      <!-- use any explicitly specified servernames. -->
>      <!-- If autodetect is FALSE, James will use only the specified
> servernames. -->
>      <!-- -->
>      <!-- If autodetectIP is not FALSE, James will also allow add the IP
> address for each servername. -->
>      <!-- The automatic IP detection is to support RFC 2821, Sec 4.1.3,
> address literals. -->
>      <!-- -->
>      <!-- To override autodetected server names simply add explicit
> servername elements. -->
>      <!-- In most cases this will be necessary. -->
>      <!-- By default, the servername 'localhost' is specified. This can be
> removed, if required. -->
>      <!-- -->
>      <!-- Warning: If you are using fetchmail it is important to include
> the -->
>      <!-- fetched domains in the server name list to prevent looping.
> -->
>      <servernames autodetect="true" autodetectIP="true">
>      <!-- CONFIRM? -->
>         <servername>svr2tmail1</servername>
>   <servername>integration.com</servername>
>      </servernames>
>      <!-- Set whether user names are case sensitive or case insensitive -->
>      <!-- Set whether to enable local aliases -->
>      <!-- Set whether to enable forwarding -->
>      <usernames ignoreCase="true" enableAliases="true"
> enableForwarding="true"/>
>      <!-- The inbox repository is the location for users inboxes -->
>      <!-- Default setting: file based repository - enter path ( use  "
> file:///" for absolute) -->
>      <inboxRepository>
>         <repository destinationURL="file://var/mail/inboxes/" type="MAIL"/>
>      </inboxRepository>
>      <!-- Alternative inbox repository definition for DB use. -->
>      <!-- The format for the destinationURL is "db://<data-source>/<table>"
> -->
>      <!-- <data-source> is the datasource name set up in the
> database-connections block, below -->
>      <!-- <table> is the name of the table to store user inboxes in -->
>      <!-- The user name is used as <repositoryName> for this repository
> config. -->
>      <!--
>      <inboxRepository>
>         <repository destinationURL="db://maildb/inbox/" type="MAIL"/>
>      </inboxRepository>
>      -->
>      <!-- Alternative inbox repository definition for DB use. -->
>      <!-- Stores message body in file system, rest in database -->
>      <!--
>      <inboxRepository>
>         <repository destinationURL="dbfile://maildb/inbox/" type="MAIL"/>
>      </inboxRepository>
>      -->
>      <!-- Alternative inbox repository definition for mbox use. -->
>      <!-- This method uses UNIX standard mbox files and is meant for people
> using mbox files -->
>      <!-- with systems such as mail list archive displayers -->
>      <!-- Note that dot-locking is not currently supported -->
>      <!-- so network (write) accesses may cause mbox corruption -->
>      <!-- the sample mbox URL is an absolute URL; mbox:///var/mail will put
> the users mbox files in /var/mail/-->
>      <!--
>      <inboxRepository>
>         <repository destinationURL="mbox:///var/mail/" type="MAIL"/>
>      </inboxRepository>
>      -->
>   </James>
>   <!-- This is an example configuration for FetchMail, a JavaMail based
> gateway  -->
>   <!-- service that pulls messages from other sources, and inserts them
> into the -->
>   <!-- spool.  They are then processed normally, although FetchMail
> generally    -->
>   <!-- has to fabricate some of the envelope information.  FetchMail should
> be   -->
>   <!-- considered a mail gateway, rather than a relay, in RFC
> terms.             -->
>   <!-- Fetchmail is a functionally richer replacement for
> FetchPOP.              -->
>   <!-- CHECKME: FetchMail is disabled by default, and must be configured to
> use. -->
>   <!-- Edit the file referred to by fetchmailConfig to enable and
> configure.     -->
>   &fetchmailConfig;
>   <!-- Set the Java packages from which to load mailets and matchers -->
>   <mailetpackages>
>      <mailetpackage>org.apache.james.transport.mailets</mailetpackage>
>
> <mailetpackage>org.apache.james.transport.mailets.smime</mailetpackage>
>   </mailetpackages>
>   <matcherpackages>
>      <matcherpackage>org.apache.james.transport.matchers</matcherpackage>
>
> <matcherpackage>org.apache.james.transport.matchers.smime</matcherpackage>
>   </matcherpackages>
>   <!-- The James Spool Manager block  -->
>   <!-- -->
>   <!-- This block is responsible for processing messages on the spool. -->
>   <spoolmanager>
>      <!-- Number of spool threads -->
>      <threads> 10 </threads>
>      <!-- The root processor is a required processor - James routes all
> mail on the spool -->
>      <!-- through this processor first. -->
>      <!-- -->
>      <!-- This configuration is a sample configuration for the root
> processor. -->
>      <processor name="root">
>         <!-- This mailet redirects mail for the user 'postmaster' at any
> local domain to -->
>         <!-- the postmaster address specified for the server. The
> postmaster address -->
>         <!-- is required by rfc822. Do not remove this mailet unless you
> are meeting -->
>         <!-- this requirement through other means (e.g. a
> XML/JDBCVirtualUserTable mailet) -->
>         <mailet match="All" class="PostmasterAlias"/>
>         <!-- Checks that the email Sender is associated with a valid
> domain. -->
>         <!-- Useful for detecting and eliminating spam. -->
>         <!-- For this block to function, the spam processor must be
> configured. -->
>         <!--
>         <mailet
> match="SenderInFakeDomain=64.55.105.9,64.94.110.11,194.205.62.122,194.205.62.62,195.7.77.20,206.253.214.102,212.181.91.6,219.88.106.80,194.205.62.42,216.35.187.246,203.119.4.6"
> class="ToProcessor">
>            <processor> spam </processor>
>         </mailet>
>         -->
>         <!-- Important check to avoid looping -->
>         <mailet match="RelayLimit=30" class="Null"/>
>         <!-- Check for viruses -->
>         <!-- -->
>         <!-- Does an antivirus scan check using a ClamAV daemon (CLAMD).
> -->
>         <!-- -->
>         <!-- Interacts directly with the daemon using the "stream" method,
> -->
>         <!-- which should have the lowest possible overhead. -->
>         <!-- The CLAMD daemon will typically reside on localhost, but could
> reside on a -->
>         <!-- different host. -->
>         <!-- It may also consist on a set of multiple daemons, each
> residing on a different -->
>         <!-- server and on different IP number. -->
>         <!-- In such case a DNS host name with multiple IP addresses
> (round-robin load sharing) -->
>         <!-- is supported by the mailet (but on the same port number). -->
>         <!-- -->
>         <!-- Handles the following init parameters: -->
>         <!-- <debug> -->
>         <!-- <host>: the host name of the server where CLAMD runs. It can
> either be -->
>         <!--     a machine name, such as -->
>         <!--     "java.sun.com", or a textual representation of its -->
>         <!--     IP address. If a literal IP address is supplied, only the
> -->
>         <!--     validity of the address format is checked. -->
>         <!--     If the machine name resolves to multiple IP addresses,
> round-robin load sharing will -->
>         <!--     be used. -->
>         <!--     The default is "localhost". -->
>         <!-- <port>: the port on which CLAMD listens. The default is
> "3310". -->
>         <!-- <maxPings>: the maximum number of connection retries during
> startup. -->
>         <!--     If the value is "0" no startup test will be done. -->
>         <!--     The default is "6". -->
>         <!-- <pingIntervalMilli>: the interval (in milliseconds) -->
>         <!--     between each connection retry during startup. -->
>         <!--     The default is "30000" (30 seconds). -->
>         <!-- <streamBufferSize>: the BufferedOutputStream buffer size to
> use  -->
>         <!--     writing to the stream connection. The default is "8192".
> -->
>         <!--
>         <mailet match="All" class="ClamAVScan" onMailetException="ignore">
>            <debug> true </debug>
>         </mailet>
>         -->
>         <!-- If infected go to virus processor -->
>         <mailet match="HasMailAttributeWithValue=org.apache.james.infected,
> true" class="ToProcessor">
>            <processor> virus </processor>
>         </mailet>
>         <!-- Check attachment extensions for possible viruses -->
>         <!-- The "-z" option requests the check to be non-recursively
> applied -->
>         <!-- to the contents of any attached '*.zip' file. -->
>         <!--
>         <mailet match="AttachmentFileNameIs=-d -z *.exe *.com *.bat *.cmd
> *.pif *.scr *.vbs *.avi *.mp3 *.mpeg *.shs" class="Bounce"
> onMatchException="error">
>            <inline>heads</inline>
>            <attachment>none</attachment>
>            <passThrough>false</passThrough>
>            <prefix>[REJECTED]</prefix>
>            <notice>
> The Security Policy of XXX does not allow to forward messages containing
> attachments having any of the extensions .exe, .com, .bat, .cmd, .pif, .scr,
> .vbs, .avi, .mp3, .mpeg, .shs, therefore your message has been rejected.
> Please don't reply to this e-mail as it has been automatically sent by the
> antivirus system.
> Regards, Postmaster XXX.YYY
> .....................................
>            </notice>
>         </mailet>
>         -->
>         <!-- Whitelist Management -->
>         <!-- Manages for each local user a "white list" of remote addresses
> whose messages -->
>         <!-- should never be blocked as spam. -->
>         <!-- -->
>         <!-- If <automaticInsert> is true, it will check, for a local
> sender, if a remote recipient -->
>         <!-- is already in the list: if not, it will be automatically
> inserted. -->
>         <!-- This is under the interpretation that if a local sender X
> sends a message to a -->
>         <!-- remote recipient Y, then later on if a message is sent by Y to
> X it should be -->
>         <!-- considered always valid and never blocked; hence Y should be
> in the white list -->
>         <!-- of X. -->
>         <!-- -->
>         <!-- Another mode of operations is when a local sender sends a
> message to <whitelistManagerAddress> -->
>         <!-- with one of three specific values in the subject, to -->
>         <!-- (i) send back a message displaying a list of the addresses in
> his own list (<displayFlag>); -->
>         <!-- (ii) insert some new addresses in his own list (<insertFlag>);
> -->
>         <!-- (iii) remove some addresses from his own list (<removeFlag>).
> -->
>         <!-- In all of the three above cases the message will be ghosted
> and the postmaster will reply -->
>         <!-- to the sender. -->
>         <!-- -->
>         <!-- The sender name is always converted to its primary name
> (handling aliases). -->
>         <!--
>         <mailet match="SMTPAuthSuccessful" class="WhiteListManager"
> onMailetException="ignore">
>            <repositoryPath>db://maildb</repositoryPath>
>            <automaticInsert>true</automaticInsert>
>            <whitelistManagerAddress>whitelist.manager@xxx.yyy
> </whitelistManagerAddress>
>            <displayFlag>display</displayFlag>
>            <insertFlag>insert</insertFlag>
>            <removeFlag>remove</removeFlag>
>         </mailet>
>         -->
>         <!-- "not spam" bayesian analysis feeder. -->
>         <!--
>         <mailet match="RecipientIs=not.spam@xxx.yyy"
> class="BayesianAnalysisFeeder">
>            <repositoryPath> db://maildb </repositoryPath>
>            <feedType>ham</feedType>
>            <maxSize>200000</maxSize>
>         </mailet>
>         -->
>
>         <!-- "spam" bayesian analysis feeder. -->
>         <!--
>         <mailet match="RecipientIs=spam@xxx.yyy"
> class="BayesianAnalysisFeeder">
>            <repositoryPath> db://maildb </repositoryPath>
>            <feedType>spam</feedType>
>            <maxSize>200000</maxSize>
>         </mailet>
>         -->
>         <!-- sample SMIME mailets configuration -->
>         <!-- In order to use SMIME capabilities you need to install the
> bouncycastle JCE -->
>         <!-- provider in your environment (james/lib) -->
>         <!-- e.g: bcprov-jdk14-129.jar from
> http://www.bouncycastle.org/latest_releases.html -->
>         <!--
>         <mailet match="IsSMIMEEncrypted" class="SMIMEDecrypt">
>            <keyStoreType>pkcs12</keyStoreType>
>            <keyStoreFileName>c:/path.pfx</keyStoreFileName>
>            <keyStorePassword>myKeyStorePass</keyStorePassword>
>            <keyAlias>myKeyAlias</keyAlias>
>            <keyAliasPassword>myKeyPass</keyAliasPassword>
>         </mailet>
>
>         <mailet match="IsSMIMESigned" class="SMIMECheckSignature">
>            <keyStoreType>pkcs12</keyStoreType>
>            <keyStoreFileName>c:/path.pfx</keyStoreFileName>
>            <keyStorePassword>myKeyStorePass</keyStorePassword>
>            <strip>false</strip>
>            <onlyTrusted>true</onlyTrusted>
>         </mailet>
>         -->
>         <!--
>         <mailet match="All" class="XMLVirtualUserTable">
>            <!- 1:1 mapping ->
>            <mapping>morgoth@middle-earth=sauron@mordor</mapping>
>            <!- 1:n mapping ->
>            <mapping>istari@middle-earth=saruman@isengard
> ;radigast;gandalf</mapping>
>            <!- DSN mapping ->
>            <mapping>boromir@osgilliath=error:550 Requested action not
> taken: no such user here</mapping>
>            <!- regex based mapping ->
>            <mapping>*@osgilliath=regex:(.*)@osgilliath:${1}@minas-tirith
> </mapping>
>            <!- both standard and regex mapping ->
>            <mapping>ring@*=onering@mordor;regex:ring@(.*):ring@
> ${1}</mapping>
>            <!- conditional regex mapping example ->
>            <mapping>*@listserver=regex:(.*)-on@listserver
> :${1}-subscribe@listserver;
>                                  regex:(.*)-off@listserver
> :${1}-unsubscribe@listserver
>            </mapping>
>         </mailet>
>         -->
>         <!-- Anti-spam processing -->
>         <!-- The following two entries avoid double anti-spam analysis -->
>         <!-- for forwarded messages. -->
>         <!-- Has spam checking already been done? -->
>         <mailet match="HasMailAttribute=spamChecked" class="ToProcessor">
>            <processor> transport </processor>
>         </mailet>
>         <!-- Spam checking will not be done twice -->
>         <mailet match="All" class="SetMailAttribute">
>            <spamChecked>true</spamChecked>
>         </mailet>
>         <!-- White List:
>              If you use block lists, you will probably want to check
>              for known permitted senders.  This is particularly true
>              if you use more aggressive block lists, such as SPEWS,
>              that are prone to block entire subnets without regard
>              for non-spamming senders.
>         -->
>         <!-- Messages from authenticated senders never are spam -->
>         <mailet match="SMTPAuthSuccessful" class="ToProcessor">
>            <processor> transport </processor>
>         </mailet>
>         <!-- Messages signed by trusted users never are spam -->
>         <!-- Uncommenting the following entry, messages with valid
> signatures will never be considered spam. -->
>         <!-- This can be a valid policy *if* SMIMECheckSignature was
> invoked -->
>         <!-- with <onlyTrusted>true</onlyTrusted> set -->
>         <!--
>         <mailet
> match="HasMailAttribute=org.apache.james.SMIMECheckSignature"
> class="ToProcessor">
>            <processor> transport </processor>
>         </mailet>
>         -->
>         <!-- specific known senders -->
>         <!--
>         <mailet match="SenderIs=goodboy@goodhost"
>                 class="ToProcessor">
>            <processor> transport </processor>
>         </mailet>
>         -->
>         <!-- People on this list agree to pay a penalty if they send spam
> -->
>         <mailet match="InSpammerBlacklist=query.bondedsender.org."
>                 class="ToProcessor">
>           <processor> transport </processor>
>         </mailet>
>         <!-- E-mail legally required not to be spam (see:
> http://www.habeas.com) -->
>         <!--
>         <mailet match="HasHabeasWarrantMark" class="ToProcessor">
>            <processor> transport </processor>
>         </mailet>
>         -->
>         <!-- If the sender is in a recipient's whitelist, it is a valid
> sender, -->
>         <!-- and as such the message should not be considered spam for such
> recipient. -->
>         <!--
>         <mailet match="IsInWhiteList=db://maildb" class="ToProcessor"
> onMatchException="noMatch">
>            <processor> transport </processor>
>         </mailet>
>         -->
>         <!-- End of White List -->
>         <!-- Check for delivery from a known spam server -->
>         <!-- This set of matchers/mailets redirect all emails from known
> -->
>         <!-- black holes, open relays, and spam servers to the spam
> processor -->
>         <!-- For this set to function properly, the spam processor must be
> configured. -->
>         <mailet match="InSpammerBlacklist=dnsbl.njabl.org."
>                 class="ToProcessor">
>           <processor> spam </processor>
>           <notice>550 Requested action not taken: rejected - see
> http://njabl.org/ </notice>
>         </mailet>
>
>         <!-- Sample matching to kill a message (send to Null) -->
>         <!--
>         <mailet match="RecipientIs=badboy@badhost" class="Null"/>
>         -->
>         <!-- Anti spam bayesian analysis -->
>         <!--
>         <mailet match="All" class="BayesianAnalysis"
> onMailetException="ignore">
>            <repositoryPath>db://maildb</repositoryPath>
>        <maxSize>200000</maxSize>
>            <headerName>X-MessageIsSpamProbability</headerName>
>            <ignoreLocalSender>true</ignoreLocalSender>
>         </mailet>
>         <mailet match="CompareNumericHeaderValue=X-MessageIsSpamProbability
>> 0.90" class="SetMailAttribute" onMatchException="noMatch">
>            <isSpam>true</isSpam>
>         </mailet>
>         <mailet match="CompareNumericHeaderValue=X-MessageIsSpamProbability
>> 0.90" class="SetMimeHeader" onMatchException="noMatch">
>            <name>X-MessageIsSpam</name>
>            <value>true</value>
>         </mailet>
>         <mailet match="CompareNumericHeaderValue=X-MessageIsSpamProbability
>> 0.99" class="ToProcessor" onMatchException="noMatch">
>            <processor> spam </processor>
>            <notice>Spam not accepted</notice>
>         </mailet>
>         -->
>         <!-- Send remaining mails to the transport processor for either
> local or remote delivery -->
>         <mailet match="All" class="ToProcessor">
>            <processor> transport </processor>
>         </mailet>
>      </processor>
>      <!-- The error processor is required.  James may internally set emails
> to the -->
>      <!-- error state.  The error processor is generally invoked when there
> is an -->
>      <!-- unexpected error either in the mailet chain or internal to James.
> -->
>      <!-- -->
>      <!-- By default configuration all email that generates an error in
> placed in -->
>      <!-- an error repository. -->
>      <processor name="error">
>         <!-- If you want to notify the sender their message generated an
> error, uncomment this       -->
>         <!--
>         <mailet match="All" class="Bounce"/>
>         -->
>         <!-- If you want to notify the postmaster that a message generated
> an error, uncomment this  -->
>         <!--
>         <mailet match="All" class="NotifyPostmaster"/>
>         -->
>         <!-- Logs any messages to the repository specified -->
>         <mailet match="All" class="ToRepository">
>            <repositoryPath>
> file://var/mail/error/</repositoryPath<file://var/mail/error/%3C/repositoryPath>
>>
>            <!-- An alternative database repository example follows. -->
>            <!--
>            <repositoryPath> db://maildb/deadletter/error </repositoryPath>
>            -->
>         </mailet>
>      </processor>
>      <!-- Processor CONFIGURATION SAMPLE: transport is a sample custom
> processor for local or -->
>      <!-- remote delivery -->
>      <processor name="transport">
>        <!-- This is an example configuration including configuration for a
> list server. -->
>        <!-- CHECKME: before uncommenting this, edit the configuration
> file's contents   -->
>        <!--
>          &listserverConfig;
>        -->
>         <mailet match="SMTPAuthSuccessful" class="SetMimeHeader">
>            <name>X-UserIsAuth</name>
>            <value>true</value>
>         </mailet>
>
>         <mailet
> match="HasMailAttribute=org.apache.james.SMIMECheckSignature"
> class="SetMimeHeader">
>            <name>X-WasSigned</name>
>            <value>true</value>
>         </mailet>
>         <!-- Add a server-side signature -->
>         <!-- In order to use SMIME capabilities you need to install the
> bouncycastle JCE -->
>         <!-- provider in your environment (james/lib) -->
>         <!-- e.g: bcprov-jdk14-129.jar from
> http://www.bouncycastle.org/latest_releases.html -->
>         <!--
>         <mailet match="All" class="SMIMESign" onMailetException="ignore">
>            <keyStoreType>jks</keyStoreType>
>            <keyStoreFileName>path.keystore</keyStoreFileName>
>            <keyStorePassword>myKeyStorePass</keyStorePassword>
>            <keyAlias>myKeyAlias</keyAlias>
>            <keyAliasPassword>myKeyPass</keyAliasPassword>
>            <signerName>XXX Trusted Server</signerName>
>            <rebuildFrom>true</rebuildFrom>
>            <postmasterSigns>true</postmasterSigns>
>            <debug>true</debug>
>         </mailet>
>         -->
>         <!-- Experimental quota Matcher -->
>         <!-- This matcher need to calculate the mailbox size everytime it
> is called. This can slow down things if there are many mails in -->
>         <!-- the mailbox. Some users also report big problems with the
> matcher if a JDBC based mailrepository is used. -->
>         <!-- Check if over quota -->
>         <!--
>         <mailet match="RecipientIsOverFixedQuota=20M" class="Resend">
>            <sender>postmaster</sender>
>            <replyTo>postmaster</replyTo>
>            <reversePath>null</reversePath>
>            <inline>none</inline>
>            <attachment>message</attachment>
>            <prefix>[OVER QUOTA WARNING]</prefix>
>            <message>
> When receiving the attached message, your mailbox is larger than 20 MB,
> which is the maximum allowed quota. The mailbox will not be blocked, but we
> ask you to empty it ASAP.
> It is likely that you have set, in your mail client account, the option
> "leave a copy of messages on server". For any help ask your administrators.
> Regards, Postmaster XXX.YYY
> .....................................
>            </message>
>         </mailet>
>         -->
>         <!-- Is the recipient is for a local account, deliver it locally
> -->
>         <!--mailet match="RecipientIsLocal" class="LocalDelivery"/-->
>         <!-- If the host is handled by this server and it did not get -->
>         <!-- locally delivered, this is an invalid recipient -->
>         <!--mailet match="HostIsLocal" class="ToProcessor">
>            <processor> local-address-error </processor>
>            <notice>550 - Requested action not taken: no such user
> here</notice>
>         </mailet-->
> <!-- CHECKME! -->
>         <!-- This is an anti-relay matcher/mailet combination -->
>         <!-- -->
>         <!-- Emails sent from servers not in the network list are  -->
>         <!-- rejected as spam.  This is one method of preventing your -->
>         <!-- server from being used as an open relay.  Make sure you
> understand -->
>         <!-- how to prevent your server from becoming an open relay before
> -->
>         <!-- changing this configuration. See also <authorizedAddresses> in
> SMTP Server -->
>         <!-- -->
>         <!-- This matcher/mailet combination must come after local delivery
> has -->
>         <!-- been performed.  Otherwise local users will not be able to
> receive -->
>         <!-- email from senders not in this remote address list. -->
>         <!-- -->
>         <!-- If you are using this matcher/mailet you will probably want to
> -->
>         <!-- update the configuration to include your own
> network/addresses.  The -->
>         <!-- matcher can be configured with a comma separated list of IP
> addresses  -->
>         <!-- wildcarded IP subnets, and wildcarded hostname subnets. -->
>         <!-- e.g. "RemoteAddrNotInNetwork=127.0.0.1, abc.de.*, 192.168.0.*"
> -->
>         <!-- -->
>         <!-- If you are using SMTP authentication then you can (and
> generally -->
>         <!-- should) disable this matcher/mailet pair. -->
>         <mailet match="RemoteAddrNotInNetwork=127.0.0.1"
> class="ToProcessor">
>            <processor> relay-denied </processor>
>            <notice>550 - Requested action not taken: relaying
> denied</notice>
>         </mailet>
>         <!-- Attempt remote delivery using the specified repository for the
> spool, -->
>         <!-- using delay time to retry delivery and the maximum number of
> retries -->
>         <mailet match="RecipientIs=platsys@integration.com"
> class="RemoteDelivery">
>            <outgoing> file://var/mail/outgoing </outgoing>
>            <!-- alternative database repository example below -->
>            <!--
>            <outgoing> db://maildb/spool/outgoing </outgoing>
>            -->
>            <!-- Delivery Schedule based upon RFC 2821, 4.5.4.1 -->
>            <!-- 5 day retry period, with 4 attempts in the first
>                 hour, two more within the first 6 hours, and then
>                 every 6 hours for the rest of the period. -->
>            <!--delayTime>  5 minutes </delayTime>
>            <delayTime> 10 minutes </delayTime>
>            <delayTime> 45 minutes </delayTime>
>            <delayTime>  2 hours </delayTime>
>            <delayTime>  3 hours </delayTime>
>            <delayTime>  6 hours </delayTime-->
>            <delayTime> 21600000 </delayTime>
>            <maxRetries> 5 </maxRetries>
>            <!-- The number of threads that should be trying to deliver
> outgoing messages -->
>            <deliveryThreads> 1 </deliveryThreads>
>            <!-- If false the message will not be sent to given server if
> any recipients fail -->
>            <sendpartial>false</sendpartial>
>
>            <!-- By default we send bounces to the "bounce" processor -->
>            <!-- By removing this configuration James will fallback to
> hardcoded bounce -->
>            <!-- notifications -->
>            <bounceProcessor>bounces</bounceProcessor>
>         <debug>true</debug>
>            <!-- A single mail server to deliver all outgoing messages. -->
>            <!-- This is useful if this server is a backup or failover
> machine, -->
>            <!-- or if you want all messages to be routed through a
> particular mail server, -->
>            <!-- regardless of the email addresses specified in the message
> -->
>            <!-- -->
>            <!-- The gateway element specifies the gateway SMTP server name.
> -->
>            <!-- If your gateway mail server is listening on a port other
> than 25, -->
>            <!-- you can set James to connect to it on that port using the
> gatewayPort -->
>            <!-- element. -->
>            <!-- Although normally multiple addresses are implemented
> through proper -->
>            <!-- DNS configuration, the RemoteDelivery mail does allow
> specifying -->
>            <!-- multiple gateway elements, each of which may also have a
> port -->
>            <!-- e.g., mygateway:2525 -->
>            <!-- the gatewayPort element is used as a default -->
>            <!--
>            <gateway> otherserver.mydomain.com </gateway>
>            <gatewayPort>25</gatewayPort>
>            -->
>            <!-- If the gateway requires smtp authentication the following
> directives -->
>            <!-- (gatewayusername/gatewayPassword) can be used. -->
>            <!--
>            <gatewayusername>login</gatewayusername>
>            <gatewayPassword>pass</gatewayPassword>
>            -->
>
>            <!-- Set the HELO/EHLO name to use when connectiong to remote
> SMTP-Server -->
>            <!--
>            <mail.smtp.localhost>myMailServer</mail.smtp.localhost>
>            -->
>         </mailet>
>      </processor>
>      <!-- Processor CONFIGURATION SAMPLE: spam is a sample custom processor
> for handling -->
>      <!-- spam. -->
>      <!-- You can either log these, bounce these, or just ignore them. -->
>      <processor name="spam">
>         <!-- To destroy all messages, uncomment this matcher/mailet
> configuration -->
>         <!--
>         <mailet match="All" class="Null"/>
>         -->
>         <!-- To notify the sender their message was marked as spam,
> uncomment this matcher/mailet configuration -->
>         <!--
>         <mailet match="All" class="Bounce"/>
>         -->
>         <!-- To notify the postmaster that a message was marked as spam,
> uncomment this matcher/mailet configuration -->
>         <!--
>         <mailet match="All" class="NotifyPostmaster"/>
>         -->
>         <!-- To log the message to a repository, this matcher/mailet
> configuration should be uncommented. -->
>         <!-- This is the default configuration. -->
>         <mailet match="All" class="ToRepository">
>            <repositoryPath>file://var/mail/spam/</repositoryPath>
>            <!-- Changing the repositoryPath, as in this commented out
> example, will -->
>            <!-- cause the mails to be stored in a database repository.  -->
>            <!-- Please note that only one repositoryPath element can be
> present for the mailet -->
>            <!-- configuration. -->
>            <!--
>            <repositoryPath> db://maildb/deadletter/spam </repositoryPath>
>            -->
>         </mailet>
>      </processor>
>      <!-- messages containing viruses. -->
>      <processor name="virus">
>
>         <!-- To avoid a loop while bouncing -->
>         <mailet match="All" class="SetMailAttribute">
>            <org.apache.james.infected>true,
> bouncing</org.apache.james.infected>
>         </mailet>
>         <!-- If the sender is authenticated, notify the infection -->
>         <mailet match="SMTPAuthSuccessful" class="Bounce">
>            <inline>heads</inline>
>            <attachment>none</attachment>
>            <notice> Warning: We were unable to deliver the message below
> because it was found infected by virus(es). </notice>
>         </mailet>
>         <!-- In any other situation ghost it, -->
>         <!-- as viruses almost always spoof the sender's address -->
>         <mailet match="All" class="Null" />
>      </processor>
>      <!-- This processor handles messages that are for local domains, where
> the user is unknown -->
>      <processor name="local-address-error">
>         <!-- To avoid bouncing/archiving spam, uncomment this
> matcher/mailet configuration -->
>         <!--
>         <mailet match="HasMailAttribute=isSpam" class="Null"
> onMatchException="noMatch"/>
>         -->
>         <!-- To notify the sender the address was invalid, uncomment this
> matcher/mailet configuration -->
>         <!-- The original message is not attached to keep the bounce
> processor from deliverying spam -->
>         <!--
>         <mailet match="All" class="Bounce">
>            <attachment>none</attachment>
>         </mailet>
>         -->
>         <!-- To notify the postmaster that a message had an invalid
> address, uncomment this matcher/mailet configuration -->
>         <!--
>         <mailet match="All" class="NotifyPostmaster"/>
>         -->
>         <mailet match="All" class="ToRepository">
>            <repositoryPath>
> file://var/mail/address-error/</repositoryPath<file://var/mail/address-error/%3C/repositoryPath>
>>
>            <!-- An alternative database repository example follows. -->
>            <!--
>            <repositoryPath> db://maildb/deadletter/address-error
> </repositoryPath>
>            -->
>         </mailet>
>      </processor>
>      <!-- This processor handles messages that are for foreign domains,
> where relaying is denied -->
>      <!-- As of James v2.2, this processor can be deprecated by using the
> <authorizedAddresses> tag
>           in the SMTP Server, and rejecting the message in the protocol
> transaction.  -->
>      <processor name="relay-denied">
>         <!-- To notify the sender the address was invalid, uncomment this
> matcher/mailet configuration -->
>         <!-- The original message is not attached to keep the bounce
> processor from deliverying spam -->
>         <!--
>         <mailet match="All" class="Bounce">
>            <attachment>none</attachment>
>         </mailet>
>         -->
>         <!-- To notify the postmaster that a relay request was denied,
> uncomment this matcher/mailet configuration -->
>         <!--
>         <mailet match="All" class="NotifyPostmaster"/>
>         -->
>         <mailet match="All" class="ToRepository">
>            <repositoryPath>file://var/mail/relay-denied/</repositoryPath>
>            <!-- An alternative database repository example follows. -->
>            <!--
>            <repositoryPath> db://maildb/deadletter/relay-denied
> </repositoryPath>
>            -->
>         </mailet>
>      </processor>
>      <!-- This processor handle the bounces from RemoteDelivery: As of
> James v2.3, this is the new -->
>      <!-- Default. -->
>      <!-- -->
>      <!-- DSNBounce properly create a DSN compliant bounce -->
>      <processor name="bounces">
>         <mailet match="All" class="DSNBounce">
>            <passThrough>false</passThrough>
>            <!-- optional subject prefix prepended to the original message
> -->
>            <!--
>            <prefix>[bounce]</prefix>
>            -->
>
>            <!-- message, heads or none, default=message -->
>            <!--
>            <attachment>heads</attachment>
>            -->
>
>            <!-- the message sent in the bounce, the first occurrence of the
> pattern [machine] is -->
>            <!-- replaced with the name of the executing machine -->
>            <!-- Default: Hi. This is the James mail server at [machine] ...
> -->
>            <!--
>            <messageString>Here is [machine]. I'm not able to deliver this
> message.</messageString>
>            -->
>          </mailet>
>      </processor>
>   </spoolmanager>
>   <!-- DNS Server Block -->
>   <!-- -->
>   <!-- Specifies DNS Server information for use by various components
> inside -->
>   <!-- James. -->
>   <!-- -->
>   <!-- If autodiscover is true, James will attempt to autodiscover the DNS
> servers configured on your underlying system.-->
>   <!-- Currently, this works if the OS has a unix-like /etc/resolv.conf,-->
>   <!-- or the system is Windows based with ipconfig or winipcfg.-->
>   <!-- -->
>   <!-- If no DNS servers are found and you have not specified any below,
> 127.0.0.1 will be used-->
>   <!-- If you use autodiscover and add DNS servers manually a combination
> of all the dns servers will be used  -->
>   <!--  -->
>   <!-- Information includes a list of DNS Servers to be used by James.
> These are -->
>   <!-- specified by the server elements, each of which is a child element
> of the -->
>   <!-- servers element.  Each server element is the IP address of a single
> DNS server. -->
>   <!-- The servers element can have multiple server children. -->
>   <dnsserver>
>      <servers>
>         <!--Enter ip address of your DNS server, one IP address per server
> -->
>         <!-- element. -->
>         <!--
>         -->
>          <server>10.1.1.23</server>
>      </servers>
>      <!-- Change autodiscover to false if you would like to turn off
> autodiscovery -->
>      <!-- and set the DNS servers manually in the <servers> section -->
>      <autodiscover>true</autodiscover>
>      <authoritative>false</authoritative>
>      <!-- Maximum number of entries to maintain in the DNS cache -->
>      <maxcachesize>50000</maxcachesize>
>   </dnsserver>
>   <!-- The RemoteManager server is enabled by default -->
>   <!-- Disabling blocks will stop them from listening, -->
>   <!-- but does not free as many resources as removing them would -->
>   <remotemanager enabled="true">
>      <port>4555</port>
>      <!--  Uncomment this if you want to bind to a specific inetaddress -->
>      <!--
>      <bind> </bind>
>      -->
>      <!--  Uncomment this if you want to use TLS (SSL) on this port -->
>      <!--
>      <useTLS>true</useTLS>
>      -->
>      <handler>
>         <!-- This is the name used by the server to identify itself in the
> RemoteManager -->
>         <!-- protocol.  If autodetect is TRUE, the server will discover its
> -->
>         <!-- own host name and use that in the protocol.  If discovery
> fails, -->
>         <!-- the value of 'localhost' is used.  If autodetect is FALSE,
> James -->
>         <!-- will use the specified value. -->
>         <helloName autodetect="true">myMailServer</helloName>
>         <administrator_accounts>
> <!-- CHECKME! -->
>            <!-- Change the default login/password. -->
>            <account login="root" password="root"/>
>         </administrator_accounts>
>         <connectiontimeout> 60000 </connectiontimeout>
>         <!-- The prompt directive adds a prompt to every output from
> RemoteManager -->
>         <!--
>         <prompt>james&gt;</prompt>
>         -->
>      </handler>
>   </remotemanager>
>    <!-- The POP3 server is enabled by default -->
>    <!-- Disabling blocks will stop them from listening, -->
>    <!-- but does not free as many resources as removing them would -->
>   <pop3server enabled="false">
>      <!-- port 995 is the well-known/IANA registered port for POP3S  ie
> over SSL/TLS -->
>      <!-- port 110 is the well-known/IANA registered port for Standard POP3
> -->
>      <port>110</port>
>      <!-- Uncomment this if you want to bind to a specific inetaddress -->
>      <!--
>      <bind> </bind>
>      -->
>      <!--  Uncomment this if you want to use TLS (SSL) on this port -->
>      <!--
>      <useTLS>true</useTLS>
>      -->
>      <handler>
>         <!-- This is the name used by the server to identify itself in the
> POP3 -->
>         <!-- protocol.  If autodetect is TRUE, the server will discover its
> -->
>         <!-- own host name and use that in the protocol.  If discovery
> fails, -->
>         <!-- the value of 'localhost' is used.  If autodetect is FALSE,
> James -->
>         <!-- will use the specified value. -->
>         <helloName autodetect="true">myMailServer</helloName>
>         <connectiontimeout>120000</connectiontimeout>
>      </handler>
>   </pop3server>
>    <!-- The SMTP server is enabled by default -->
>    <!-- Disabling blocks will stop them from listening, -->
>    <!-- but does not free as many resources as removing them would -->
>   <smtpserver enabled="true">
>      <!-- port 25 is the well-known/IANA registered port for SMTP -->
>      <port>29</port>
>      <!-- Uncomment this if you want to bind to a specific inetaddress -->
>      <!-- Please NOTE: you should add this IP also to your
> RemoteAddrNotInNetwork -->
>      <!-- in order to avoid relay check for locallly generated bounces -->
>      <!--
>      <bind> </bind>
>      -->
>      <!-- Uncomment this if you want to use TLS (SSL) on this port -->
>      <!--
>      <useTLS>true</useTLS>
>      -->
>      <handler>
>         <!-- This is the name used by the server to identify itself in the
> SMTP -->
>         <!-- protocol.  If autodetect is TRUE, the server will discover its
> -->
>         <!-- own host name and use that in the protocol.  If discovery
> fails, -->
>         <!-- the value of 'localhost' is used.  If autodetect is FALSE,
> James -->
>         <!-- will use the specified value. -->
>         <helloName autodetect="true">svr2tmail1</helloName>
>         <connectiontimeout>360000</connectiontimeout>
>         <!--  Uncomment this if you want to require SMTP authentication.
>               supported values:
>               true: required but announced only to not authorizedAddresses
>               false: don't use AUTH
>               announce: like true, but always announce AUTH capability to
> clients
>               The correct behaviour per RFC value would be false or
> announce
>               but we still support true for backward compatibility and
> because
>               some webmail client fails when AUTH is announced but no
> authentication
>               information has been provided
>          -->
>         <!--
>         <authRequired>true</authRequired>
>         -->
> <!-- CHECKME! -->
>         <!--  Uncomment this if you want to authorize specific
> addresses/networks.
>               If you use SMTP AUTH, addresses that match those specified
> here will
>               be permitted to relay without SMTP AUTH.  If you do not use
> SMTP
>               AUTH, and you specify addreses here, then only addresses that
> match
>               those specified will be permitted to relay.
>               Addresses may be specified as a an IP address or domain name,
> with an
>               optional netmask, e.g.,
>               127.*, 127.0.0.0/8, 127.0.0.0/255.0.0.0, and localhost/8 are
> all the same
>               See also the RemoteAddrNotInNetwork matcher in the transport
> processor.
>               You would generally use one OR the other approach.
>         -->
>         <authorizedAddresses>127.0.0.0/8</authorizedAddresses>
>         <!--  Uncomment this if you want to verify sender addresses,
> ensuring that -->
>         <!--  the sender address matches the user who has authenticated.
> -->
>         <!--  This prevents a user of your mail server from acting as
> someone else -->
>         <!--
>         <verifyIdentity>true</verifyIdentity>
>         -->
>         <!--  This sets the maximum allowed message size (in kilobytes) for
> this -->
>         <!--  SMTP service. If unspecified, the value defaults to 0, which
> means no limit. -->
>         <maxmessagesize>0</maxmessagesize>
>
>         <!--  This sets wether to enforce the use of HELO/EHLO salutation
> before a -->
>         <!--  MAIL command is accepted. If unspecified, the value defaults
> to true -->
>         <!--
>         <heloEhloEnforcement>true</heloEhloEnforcement>
>         -->
>         <!-- SMTP Handler Chain customization -->
>         <!-- Uncomment this and edit james-smtphandlerchain.xml
> configuration file to -->
>         <!-- enable the experimental fastfail features. Look at the
> james-smtphandlerchain.xml -->
>         <!-- for further informations -->
>         <!--
>         &smtphandlerchainConfig;
>         -->
>
>      </handler>
>   </smtpserver>
>    <!-- The NNTP server is enabled by default -->
>    <!-- Disabling blocks will stop them from listening, -->
>    <!-- but does not free as many resources as removing them would -->
>    <!-- NNTP-specific: if you disable the NNTP Server, you should also set
> the nntp-repository's
>         threadCount to 0, otherwise there will be threads active and
> polling  -->
>   <nntpserver enabled="false">
>   <!-- THE NNTP PROTOCOL IS EXPERIMENTAL AND NOT AS WELL TESTED AS SMTP AND
> POP3 IN THIS RELEASE.
>        The James project recommends that you check the James web site for
> updates to the NNTP
>        service.  -->
>      <!-- port 563 is the well-known/IANA registered port for NNTP over
> SSL/TLS -->
>      <!-- port 119 is the well-known/IANA registered port for Standard NNTP
> -->
>      <port>119</port>
>      <!-- Uncomment this if you want to bind to a specific inetaddress -->
>      <!--
>      <bind> </bind>
>      -->
>      <!-- Uncomment this if you want to use TLS (SSL)  on this port -->
>      <!--
>      <useTLS>true</useTLS>
>      -->
>      <handler>
>         <!-- This is the name used by the server to identify itself in the
> NNTP -->
>         <!-- protocol.  If autodetect is TRUE, the server will discover its
> -->
>         <!-- own host name and use that in the protocol.  If discovery
> fails, -->
>         <!-- the value of 'localhost' is used.  If autodetect is FALSE,
> James -->
>         <!-- will use the specified value. -->
>         <helloName autodetect="true">myMailServer</helloName>
>         <connectiontimeout>120000</connectiontimeout>
>          <!-- Set the authRequired value to true to enable authenticated
> NNTP -->
>         <authRequired>false</authRequired>
>      </handler>
>   </nntpserver>
>   <nntp-repository>
>      <!-- If this is set to true, posting will be disallowed. -->
>      <readOnly>false</readOnly>
>      <rootPath>file://var/nntp/groups</rootPath>
>      <tempPath>file://var/nntp/temp</tempPath>
>      <articleIDPath>file://var/nntp/articleid</articleIDPath>
>      <articleIDDomainSuffix>news.james.apache.org</articleIDDomainSuffix>
>      <!-- The news groups hosted in this NNTP repository. -->
>      <!-- Groups here will be added to those found in the file system,
>           but removing groups from here will NOT remove them from the
>           server.  Change <newsgroups> to <newsgroups only="true"> to
>           restrict newsgroups to ONLY those found in this list.  -->
>      <newsgroups>
>         <newsgroup>org.apache.james.dev</newsgroup>
>         <newsgroup>org.apache.james.user</newsgroup>
>         <newsgroup>org.apache.avalon.dev</newsgroup>
>         <newsgroup>org.apache.avalon.user</newsgroup>
>      </newsgroups>
>      <spool>
>         <configuration>
>            <spoolPath>file://var/nntp/spool</spoolPath>
>            <!-- The number of threads that process spooler related tasks.
> -->
>            <threadCount>1</threadCount>
>            <!-- The spool thread(s) should idle for some time, if it has
> nothing to do  -->
>            <threadIdleTime>60000</threadIdleTime>
>         </configuration>
>      </spool>
>   </nntp-repository>
>   <!-- Spool repository configuration -->
>   <!-- The spool repository is the location where incoming mails are
> temporarily stored -->
>   <!-- before being processed. -->
>   <spoolrepository destinationURL="file://var/mail/spool/" type="SPOOL"/>
>
>   <!-- Alternative spool repository definition for JDBC use -->
>   <!--
>   <spoolrepository destinationURL="db://maildb/spool/spool" type="SPOOL"/>
>   -->
>
>   <!-- Alternative spool repository definition for JDBC use -->
>   <!-- Stores message body in file system, rest in database -->
>   <!--
>   <spoolrepository destinationURL="dbfile://maildb/spool/spool"
> type="SPOOL"/>
>   -->
>   <!-- The Mailstore block -->
>   <mailstore>
>      <repositories>
>         <!-- File based repositories.  These repositories store all message
> data -->
>         <!-- in the file system. -->
>         <repository
> class="org.apache.james.mailrepository.AvalonMailRepository">
>            <protocols>
>               <protocol>file</protocol>
>            </protocols>
>            <types>
>               <type>MAIL</type>
>            </types>
>         </repository>
>         <repository
> class="org.apache.james.mailrepository.AvalonSpoolRepository">
>            <protocols>
>               <protocol>file</protocol>
>            </protocols>
>            <types>
>               <type>SPOOL</type>
>            </types>
>         </repository>
>         <!-- JDBC based repositories.  These repositories store all message
> data -->
>         <!-- in the database. -->
>         <repository
> class="org.apache.james.mailrepository.JDBCMailRepository">
>            <protocols>
>               <protocol>db</protocol>
>            </protocols>
>            <types>
>               <type>MAIL</type>
>            </types>
>            <config>
>               <sqlFile>file://conf/sqlResources.xml</sqlFile>
>               <!-- Set the size threshold for in memory handling of storing
> operations -->
>               <!-- Default is currently 409600000 due to a bug with mysql
> and binary stream -->
>               <!-- currently under investigation. Please change this only
> if you know what -->
>               <!-- you do, this is EXPERIMENTAL -->
>               <!--
>               <inMemorySizeLimit>4096</inMemorySizeLimit>
>                -->
>            </config>
>         </repository>
>         <repository
> class="org.apache.james.mailrepository.JDBCSpoolRepository">
>            <protocols>
>               <protocol>db</protocol>
>            </protocols>
>            <types>
>               <type>SPOOL</type>
>            </types>
>            <config>
>               <sqlFile>file://conf/sqlResources.xml</sqlFile>
>               <maxcache>1000</maxcache>
>               <!-- Set the size threshold for in memory handling of storing
> operations -->
>               <!-- Default is currently 409600000 due to a bug with mysql
> and binary stream -->
>               <!-- currently under investigation. Please change this only
> if you know what -->
>               <!-- you do, this is EXPERIMENTAL -->
>               <!--
>               <inMemorySizeLimit>4096</inMemorySizeLimit>
>                -->
>            </config>
>         </repository>
>         <!-- These repositories store message delivery and headers in the
> DB, and the body to the filesystem -->
>         <repository
> class="org.apache.james.mailrepository.JDBCMailRepository">
>            <protocols>
>               <protocol>dbfile</protocol>
>            </protocols>
>            <types>
>               <type>MAIL</type>
>            </types>
>            <config>
>               <sqlFile>file://conf/sqlResources.xml</sqlFile>
>               <filestore>file://var/dbmail</filestore>
>            </config>
>         </repository>
>         <repository
> class="org.apache.james.mailrepository.JDBCSpoolRepository">
>            <protocols>
>               <protocol>dbfile</protocol>
>            </protocols>
>            <types>
>               <type>SPOOL</type>
>            </types>
>            <config>
>               <sqlFile>file://conf/sqlResources.xml</sqlFile>
>               <filestore>file://var/dbmail</filestore>
>               <maxcache>1000</maxcache>
>            </config>
>         </repository>
>         <!-- The mbox repository is designed for MAIL only; SPOOL
> performance would be less than ideal-->
>         <repository
> class="org.apache.james.mailrepository.MBoxMailRepository">
>            <protocols>
>               <protocol>mbox</protocol>
>            </protocols>
>            <types>
>               <type>MAIL</type>
>            </types>
>         </repository>
>         <repository
> class="org.apache.james.mailrepository.filepair.File_Persistent_Object_Repository">
>            <protocols>
>               <protocol>file</protocol>
>            </protocols>
>            <types>
>               <type>OBJECT</type>
>            </types>
>            <models>
>               <model>SYNCHRONOUS</model>
>               <model>ASYNCHRONOUS</model>
>               <model>CACHE</model>
>            </models>
>         </repository>
>         <repository
> class="org.apache.james.mailrepository.filepair.File_Persistent_Stream_Repository">
>            <protocols>
>               <protocol>file</protocol>
>            </protocols>
>            <types>
>               <type>STREAM</type>
>            </types>
>            <models>
>               <model>SYNCHRONOUS</model>
>               <model>ASYNCHRONOUS</model>
>               <model>CACHE</model>
>            </models>
>         </repository>
>      </repositories>
>   </mailstore>
>
>   <!-- The User Storage block -->
>   <users-store>
>      <!-- Configure User Repositories here. -->
>      <!-- -->
>      <!-- User repositories are required for the following purposes: -->
>      <!--    - storing James user information, including forwards, aliases,
> -->
>      <!--      and authentication data. -->
>      <!--    - holding lists of users for the listserv mailet -->
>      <!-- Currently, two different storage options are available: -->
>      <!--    - file-based storage using Java serialization -->
>      <!--    - database-backed storage -->
>      <!-- (Use of database or file-system is defined on a "per-repository"
> basis) -->
>      <!-- -->
>      <!-- Note: One user repository is required for James: -->
>      <!--   LocalUsers - the users for whom you are providing POP3, NNTP,
> or SMTP service -->
>      <!-- -->
>      <!-- Other repositories may be used by matchers or mailets. -->
>      <!-- Default: File-based user repositories  Use these configurations
> to store user info in the filesystem  -->
>      <!-- The LocalUsers repository, for storing James' User info. -->
>      <repository name="LocalUsers"
> class="org.apache.james.userrepository.UsersFileRepository">
>         <destination URL="file://var/users/"/ <file://var/users/%22/>>
>      </repository>
>
>      <!-- Database backed user repositories -->
>      <!-- -->
>      <!-- Use these configurations to store user info in a database. -->
>      <!-- Note: The <data-source> element must refer to a connection
> configured -->
>      <!--       in the <database-connections> configuration section. -->
>      <!-- The LocalUsers repository, for storing James' User info. -->
>      <!--
>      <repository name="LocalUsers"
> class="org.apache.james.userrepository.JamesUsersJdbcRepository"
> destinationURL="db://maildb/users">
>         <sqlFile>file://conf/sqlResources.xml</sqlFile>
>      </repository>
>      -->
>      <!-- This is an example configuration including configuration for a
> list server. -->
>      <!-- CHECKME: before uncommenting this, edit the configuration file's
> contents   -->
>      <!--
>        &listserverStores;
>      -->
>   </users-store>
>   <!-- The database-connections block -->
>   <database-connections>
>      <!-- These connections are referred to by name elsewhere in the config
> file -->
> <!-- CHECKME! -->
>      <!-- To allow James to use a database you must configure the database
> connection here. -->
>      <!-- If you are not using a database, you can leave this section
> unchanged. -->
>      <!-- These connections are referred to by name in URLs elsewhere in
> the config file. -->
>      <!--
>           James has previously used an in-house connection pool, Mordred.
>           Mordred is being deprecated in favor of Jakarta Commons DBCP.
>           To use DBCP:    org.apache.james.util.dbcp.JdbcDataSource
>           To use Mordred: org.apache.james.util.mordred.JdbcDataSource
>           Change it back, of course, to use Mordred.
>           NOTE: DBCP is configured to recover from a database server
> outage.
>                 This, alone, may be reason for you to give it a try.
>      -->
>
>      <!-- Default James distribution includes Apache Derby database, -->
>      <!-- which is easy to embed - but we support all the major SQL   -->
>      <!-- databases - just reconfigure your JDBC configuration -->
>      <!--
>      <data-source name="maildb"
> class="org.apache.james.util.dbcp.JdbcDataSource">
>         <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
>         <dburl>jdbc:derby:../apps/james/var/derbydb;create=true</dburl>
>         <user></user>
>         <password></password>
>         <poolPreparedStatements>true</poolPreparedStatements>
>         <max>20</max>
>      </data-source>
>      -->
>      <!-- JDBC driver .jar libraries for other RDBMS can be placed in
> ~james/lib/  -->
>      <!-- You can download latest Connector/J from   -->
>      <!-- http://dev.mysql.com/downloads/connector/j/3.1.html -->
>      <!-- -->
>      <!-- Example, connecting to a MySQL database called "mail" on
> localhost-->
>      <!-- -->
>      <!-- The max value is the maximum number of concurrent connections
> James will -->
>      <!-- open to this database-->
>      <!-- If you see "SQLException: Giving up... no connections available."
> in your -->
>      <!-- log files or bounced mail you should increase this value -->
>      <!--
>      <data-source name="maildb"
> class="org.apache.james.util.dbcp.JdbcDataSource">
>         <driver>com.mysql.jdbc.Driver</driver>
>         <dburl>jdbc:mysql://127.0.0.1/mail?autoReconnect=true</dburl>
>         <user>username</user>
>         <password>password</password>
>         <max>20</max>
>      </data-source>
>      -->
>      <!-- Example, connecting to a Microsoft MSSQL database called "mail"
> on localhost-->
>      <!-- -->
>      <!-- The max value is the maximum number of concurrent connections
> James will -->
>      <!-- open to this database-->
>      <!-- If you see "SQLException: Giving up... no connections available."
> in your -->
>      <!-- log files or bounced mail you should increase this value -->
>      <!--
>      <data-source name="maildb"
> class="org.apache.james.util.dbcp.JdbcDataSource">
>         <driver>com.inet.tds.TdsDriver</driver>
>         <dburl>jdbc:inetdae7:127.0.0.1?database=James</dburl>
>         <user>sa_james</user>
>         <password>blahblah</password>
>         <max>20</max>
>      </data-source>
>      -->
>      <!-- Here is a configuration for hsqldb (formerly HypersonicSQL) -->
>      <!-- You can download the db from http://www.hsqldb.org/ . Just put
> the -->
>      <!-- hsqldb.jar in the lib directory and uncomment the following block
> -->
>      <!--
>      <data-source name="maildb"
> class="org.apache.james.util.dbcp.JdbcDataSource">
>         <driver>org.hsqldb.jdbcDriver</driver>
>         <dburl>jdbc:hsqldb:target/data/hsqldb</dburl>
>         <user>sa</user>
>         <password></password>
>         <max>20</max>
>      </data-source>
>      -->
>   </database-connections>
>   <!-- Configuration for Cornerstone Services -->
>   <!-- -->
>   <!-- For a simple configuration, nothing beneath this line should require
> -->
>   <!-- alteration. -->
>   <!-- -->
>   <!-- You will need to adjust the Socket Manager service configuration if
> you want -->
>   <!-- to enable secure sockets (TLS) for any James
> service.                        -->
>   <!-- -->
>   <!-- Complex or high volume configurations may require changes to the
> parameters -->
>   <!-- in this section.  Please read the James and Avalon documentation
> before -->
>   <!-- attempting to adjust this section. -->
>   <!-- -->
>   <!-- The Connection Manager block -->
>   <!-- -->
>   <!-- The idle-timeout is the number of milliseconds that it will take for
> idle -->
>   <!-- client connections managed by this connection manager to be marked
> at timed out. -->
>   <!-- If no value is specified, the value defaults to 5 minutes, 300000
> milliseconds -->
>   <!-- A value of 0 means that client sockets will not timeout. -->
>   <!-- -->
>   <!-- The max-connections parameter specifies the default maximum number
> of client -->
>   <!-- connections that this connection manager will allow per managed
> server socket. -->
>   <!-- This value can be overridden by each individual service. -->
>   <!-- If no value is specified, the value defaults to 30. -->
>   <!-- A value of 0 creates a maximum of 1 connection due to the use of the
> HardResourceLimiting -->
>   <!-- thread pool by the ServerConnection class. -->
>   <!-- Resource limitations imposed by other components (i.e. max # of
> threads) may -->
>   <!-- serve to limit the number of open connections. -->
>   <!-- -->
>   <connections>
>      <idle-timeout>300000</idle-timeout>
>      <max-connections>30</max-connections>
>   </connections>
>   <!-- The Socket Manager block -->
>   <!-- -->
>   <!-- The server-sockets element has a number of factory sub-elements. -->
>   <!-- Each of the factory elements has a name and class attribute -->
>   <!-- The name attribute for each factory element must be unique.  -->
>   <!-- The class attribute is the name of a class that implements the -->
>   <!-- interface org.apache.avalon.cornerstone.services.ServerSocketFactory
> -->
>   <!-- Specific factory elements may require some sub-elements.  This is
> -->
>   <!-- factory class dependent. -->
>   <!-- -->
>   <!-- The client-sockets element has a number of factory sub-elements. -->
>   <!-- Each of the factory elements has a name and class attribute -->
>   <!-- The name attribute for each factory element must be unique.  -->
>   <!-- The class attribute is the name of a class that implements the -->
>   <!-- interface org.apache.avalon.cornerstone.services.SocketFactory -->
>   <!-- Specific factory elements may require some sub-elements.  This is
> -->
>   <!-- factory class dependent. -->
>   <!-- -->
>   <!-- In order to use the ssl factory under Java 1.5 and support all
> Clients -->
>   <!-- (particularly Mozilla Thunderbird) you need to install the Sun JCE
> -->
>   <!-- provider in your environment (james/lib) -->
>   <!-- e.g: jre/lib/ext/sunjce_provider.jar -->
>   <!--  -->
>   <sockets>
>      <server-sockets>
>         <factory name="plain"
> class="org.apache.avalon.cornerstone.blocks.sockets.DefaultServerSocketFactory"/>
>         <!--
>         <factory name="ssl"
> class="org.apache.avalon.cornerstone.blocks.sockets.TLSServerSocketFactory">
>            <ssl-factory>
>               <keystore>
>                  <file>conf/keystore</file>
>                  <password>secret</password>
>                  <key-password>keysecret</key-password>
>                  <type>JKS</type>
>                  <protocol>TLS</protocol>
>                  <algorithm>SunX509</algorithm>
>                  <authenticate-client>false</authenticate-client>
>               </keystore>
>            </ssl-factory>
>         </factory>
>         -->
>      </server-sockets>
>      <client-sockets>
>         <factory name="plain"
> class="org.apache.avalon.cornerstone.blocks.sockets.DefaultSocketFactory"/>
>      </client-sockets>
>   </sockets>
>   <!-- The Thread Manager block -->
>   <!-- -->
>   <!-- The thread manager provides thread pools for use throughout the
> server. -->
>   <!-- -->
>   <!-- A thread pool with the name "default" must be defined in this thread
> manager -->
>   <!-- configuration. -->
>   <!-- -->
>   <!-- Each thread pool is defined with a "thread-group" element. -->
>   <!-- Each of these elements has the following required sub-elements: -->
>   <!--   name - the name of the thread pool, used by other components to
> -->
>   <!--          lookup the thread pool -->
>   <!--   priority - the thread priority for threads in the pool.  This is
> -->
>   <!--              a value between 0 and 10, with 5 being the normal -->
>   <!--              priority and 10 being the maximum. -->
>   <!--   is-daemon - whether the threads in the pool are daemon threads.
> -->
>   <!--   max-threads - the maximum number of threads allowed in the pool.
> -->
>   <!--   min-threads - the minimum number of threads allowed in the pool.
> (not implemented) -->
>   <!--   min-spare-threads - (not implemented) -->
>   <thread-manager>
>      <thread-group>
>         <name>default</name>
>         <priority>5</priority>
>         <is-daemon>false</is-daemon>
>         <max-threads>100</max-threads>
>         <min-threads>20</min-threads>
>         <min-spare-threads>20</min-spare-threads>
>      </thread-group>
>   </thread-manager>
> </config>
>
> Regards.
>

---------------------------------------------------------------------
To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
For additional commands, e-mail: server-user-help@james.apache.org


Mime
View raw message