Hi Andrei,
I appreciate your feedback, but I followed your instructions to no avail and
as such, cannot get James to run at all.
Please find attached the config files I have changed in James and scan for
'<!-- SAM -->' and '<!-- END -->' start/end markers in each of the attached
files to verify the config changes made and see if you can spot any
anomalies.
I also checked the generated James.sar file do contain the jsse.jar package
as required and the generated keystore file was also included and placed in
the conf directory of James app folder.
Can you please let me know what I have done wrong.
Thanks in advance,
Sam.
>From: "Andrei A. Ivanov" <[EMAIL PROTECTED]>
>Reply-To: "James Users List" <[EMAIL PROTECTED]>
>To: "James Users List" <[EMAIL PROTECTED]>
>Subject: Re: Using TLS & SSL
>Date: Sat, 8 Jun 2002 12:59:28 +0300
>
>Hi, Sam
>
>1. Check version of cornerstone package James uses. It must be latest one
>(I
>advise you to build cornerstone.jar from apache cvs sources). Before you
>build cornerstone make sure you have jsse packages in place and it is
>detected by cornerstone build.
>2. Generate your test keystore using your java keytool (refer sun's manual
>for this)
>3. uncomment <useTLS>true</useTLS> in smtpserver
>4. uncomment <factory name=... blah blah blah in sockets block of
>james-config
>5. Now make sure that:
> a. james build includes this keystore into sar
> b. james-config.xml contains correct information about this keystore
> c. james build "builds" jsse jars into james.sar
>6. build james and enjoy ;-) ssl (there are tricks to make, let's say OE
>work with secured james, but this is a M$ know how :-), just kidding)
>
>Need more info, don't hesitate ask!
>
>Note to James developers: I can update security section for latest James,
>what is the submission format for this?
>
>Andrei
>
>
>----- Original Message -----
>From: "Samuel Sadek" <[EMAIL PROTECTED]>
>To: <[EMAIL PROTECTED]>
>Sent: Saturday, June 08, 2002 12:37 PM
>Subject: Using TLS & SSL
>
>
> > I have looked at James website and have witnessed a section on setting
>up
> > James to use an ecryption tunnel between server and requesting clients
>via
> > usage of TLS and SSL protocols. The section there is outdated and refers
>to
> > explicitely version 1.2.1 of James. I'm having problems getting it
> > configured on the latest version of James i.e. 2.1a1. Can anyone lend me
>a
> > helping hand? Or better still update the section I mentioned so that
>many
> > poor souls can start this attempt.
> >
> > Thanks in advance,
> >
> > Sam.
> >
> >
> > _________________________________________________________________
> > Get your FREE download of MSN Explorer at
>http://explorer.msn.com/intl.asp.
> >
> >
> > --
> > To unsubscribe, e-mail:
><mailto:[EMAIL PROTECTED]>
> > For additional commands, e-mail:
><mailto:[EMAIL PROTECTED]>
> >
>
>
>--
>To unsubscribe, e-mail:
><mailto:[EMAIL PROTECTED]>
>For additional commands, e-mail:
><mailto:[EMAIL PROTECTED]>
>
_________________________________________________________________
MSN Photos is the easiest way to share and print your photos:
http://photos.msn.com/support/worldwide.aspx
<?xml version="1.0"?>
<!--
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 pasword
of root.
For production use, or in case the defaults do not suit you, the items
you are most likely to need to change are preceeded by a
CHECKME! or
CONFIRM? comment in the left
margin.
This is $Revision: 1.19 $
Committed on $Date: 2001/12/05 22:31:18 $ by: $Author: serge $
-->
<config>
<!-- The James block -->
<James>
<!-- CHECKME! Set this to the right email address for error reports -->
<!-- SAM -->
<!--<postmaster> Postmaster@localhost </postmaster>-->
<postmaster> [EMAIL PROTECTED] </postmaster>
<!-- END -->
<!-- CONFIRM? -->
<!-- servernames identifies the DNS namespace served by this instance
of James.
If autodetect is TRUE, James wil attempt to discover its own name AND use
any specified servernames. If autodetect is FALSE, James will use only
the specified servernames. By default, the servername 'localhost' is
specified. This can be removed, if required. -->
<!-- SAM - START -->
<servernames autodetect="FALSE">
<!-- END -->
<!--
<servername>To override autodetected server names
uncomment this. </servername>-->
<!-- SAM - START -->
<!--<servername>localhost</servername>-->
<servername>secemail.com</servername>
<!-- END -->
</servernames>
<!-- Set whether user names are case sensitive or insensitive -->
<!-- Set whether to enable local aliases -->
<usernames ignoreCase="TRUE" enableAliases="TRUE"
enableForwarding="TRUE"/>
<!-- Set the type of permanent mailfolders to be used.
If IMAP service is to be provided, storage must be 'IMAP'; if only POP3
service is being provided then use must be 'basic' (default) . At some
stage POP3 will, hopefully, be able to use IMAP storage as well. This
choice is irrelevant if the only service provided is SMTP. -->
<storage>IMAP</storage>
<!-- The inbox repository is the location for users inboxes -->
<!-- Default setting: file based repository - enter path ( :/// for absolute) -->
<!--<inboxRepository>
<repository destinationURL="file://var/mail/inboxes/"
type="MAIL">
</repository>
</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.
-->
<!-- SAM - START -->
<inboxRepository>
<repository destinationURL="db://maildb/inbox/"
type="MAIL">
</repository>
</inboxRepository>
<!-- END -->
</James>
<!-- The James Spool Manager block -->
<spoolmanager>
<!-- number of spool threads -->
<threads> 10 </threads>
<!-- Set the packages from which to load mailets and matches -->
<mailetpackages>
<mailetpackage>org.apache.james.transport.mailets</mailetpackage>
</mailetpackages>
<matcherpackages>
<matcherpackage>org.apache.james.transport.matchers</matcherpackage>
</matcherpackages>
<!-- Processor CONFIGURATION SAMPLE:
root is the first processor all mails enter -->
<processor name="root">
<!-- Checks that the MAIL FROM command was for a valid domain.
Important for spam prevention. -->
<!-- SAM -->
<!-- Uncommented this line for mailet conditional checking -->
<mailet match="SenderInFakeDomain" class="ToProcessor">
<processor> spam </processor>
</mailet>
<!-- END -->
<!-- Important check to avoid race conditions -->
<mailet match="RelayLimit=30" class="Null">
</mailet>
<!-- Check for delivery from a known spam server -->
<mailet match="InSpammerBlacklist=blackholes.mail-abuse.org"
class="ToProcessor">
<processor> spam </processor>
<notice> Rejected - see http://www.mail-abuse.org/rbl/ </notice>
</mailet>
<mailet match="InSpammerBlacklist=dialups.mail-abuse.org"
class="ToProcessor">
<processor> spam </processor>
<notice> Dialup - see http://www.mail-abuse.org/dul/ </notice>
</mailet>
<mailet match="InSpammerBlacklist=relays.mail-abuse.org"
class="ToProcessor">
<processor> spam </processor>
<notice> Open spam relay - see http://www.mail-abuse.org/rss/ </notice>
</mailet>
<!-- Sample matching to kill a message (send to Null) -->
<mailet match="RecipientIs=badboy@badhost" class="Null">
</mailet>
<!-- SAM -->
<!-- Has user's quota exceeded? -->
<mailet match="UserOverQuota=2m,trash" class="NotifyRecipients">
<sender>[EMAIL PROTECTED]</sender>
<inline>none</inline>
<attachment>all</attachment>
<passThrough>FALSE</passThrough>
<attachError>TRUE</attachError>
<replyto>[EMAIL PROTECTED]</replyto>
<prefix>[Undeliverable]:</prefix>
<static>FALSE</static>
</mailet>
<!-- END -->
<!-- Sends remaining mails to the transport processor for either
local or remote delivery -->
<mailet match="All" class="ToProcessor">
<processor> transport </processor>
</mailet>
</processor>
<!-- Processor CONFIGURATION SAMPLE: error is the processor mails with
failure conditions enter -->
<processor name="error">
<!-- Logs any messages to the repository specified -->
<mailet match="All" class="ToRepository">
<repositoryPath> file://var/mail/error/</repositoryPath>
<!-- <repositoryPath> db://conf/mail-error.properties </repositoryPath> -->
<passThrough> true </passThrough>
</mailet>
<!-- If you want to notify the sender their message was marked as
spam, uncomment this
<mailet match="All" class="NotifySender">
</mailet>
-->
<!-- If you want to notify the postmaster that a message was marked
as spam, uncomment this
<mailet match="All" class="NotifyPostmaster">
</mailet>
-->
</processor>
<!-- Processor CONFIGURATION SAMPLE: transport is a sample custom
processor for local or remote delivery -->
<processor name="transport">
<!-- Is the recipient is for a local account, deliver it locally -->
<mailet match="RecipientIsLocal" class="LocalDelivery">
<!-- SAM -->
<!-- Added for special IMAP message reformat processing -->
<!-- Uncomment the following line if using IMAP protocol -->
<storage>IMAP</storage>
<!-- END -->
</mailet>
<!-- 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>error</processor>
</mailet>
<!-- CHECKME!
Anti-relay mailet: Add your network address here,
e.g. "RemoteAddrNotInNetwork=127.0.0.1, abc.de.*"
-->
<!-- This matcher-mailet pair can prevent relaying... if you change
this, you risk making your mail server an open relay point for
spammers .
NOTE 1: the order of matcher-mailets is important: it must come after
valid local recipients have been dealt with but before any attempt is
made to delivery the mail remotely.
NOTE 2: Add your own network, if you want to relay mail outwards
NOTE 3: If you use SMTP AUTH, you may want to comment this
so users who are on the road can still use the server -->
<mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor">
<processor> spam </processor>
</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="All" class="RemoteDelivery">
<outgoing> file://var/mail/outgoing/ </outgoing>
<!-- <outgoing> db://conf/mail-outgoing.properties </outgoing> -->
<!-- Number of milliseconds between delivery attempts -->
<delayTime> 21600000 </delayTime>
<!-- Number of failed attempts before returning to the sender -->
<maxRetries> 5 </maxRetries>
<!-- The number of threads that should be trying to deliver outgoing messages -->
<deliveryThreads> 1 </deliveryThreads>
<!-- A single mail server to deliver all outgoing messages. This is useful if this is a backup or failover machine, or if you otherwise want all messages to be sent only to particular mail server, regardless of the email addresses specified in the message -->
<!--
<gateway> otherserver.mydomain.com </gateway>
-->
<!-- If your gateway mail server is listening on a port other than 25, you can set James to connect to it on that port -->
<!--
<gatewayPort> 25 </gatewayPort>
-->
</mailet>
</processor>
<!-- Processor CONFIGURATION SAMPLE: spam is where messages detected
as relaying or other problems will get sent. You can either log these,
bounce these, or just ignore them. -->
<processor name="spam">
<!-- If you wanted, you could just destroy messages, uncomment this
matcher/mailet
<mailet match="All" class="Null">
</mailet>
-->
<!-- If you want to notify the sender their message was marked as
spam, uncomment this
<mailet match="All" class="NotifySender">
</mailet>
-->
<!-- If you want to notify the postmaster that a message was marked
as spam, uncomment this
<mailet match="All" class="NotifyPostmaster">
</mailet>
-->
<!-- Out of the box, this will log the message to a repository -->
<mailet match="All" class="ToRepository">
<repositoryPath>file://var/mail/spam/</repositoryPath>
</mailet>
</processor>
</spoolmanager>
<!-- CONFIRM? Enter ip address of your DNS server, one per element -->
<dnsserver>
<servers>
<!-- SAM - START -->
<server>dns1.btinternet.com</server>
<server>dns2.btinternet.com</server>
<server>dns3.btinternet.com</server>
<server>dns4.btinternet.com</server>
<!--<server>ns1.mydyndns.org</server>
<server>ns2.mydyndns.org</server>
<server>ns3.mydyndns.org</server>
<server>ns4.mydyndns.org</server>
<server>ns5.mydyndns.org</server>-->
<server>localhost</server>
<!-- END -->
<!--<server> put extra dns server address here </server>-->
</servers>
<authoritative>false</authoritative>
</dnsserver>
<remotemanager>
<port>4555</port>
<!-- <bind> </bind> uncomment this if you want to bind to a specific
inetaddress -->
<useTLS>true</useTLS><!-- uncomment this if you want to use TLS (SSL)
on this port -->
<handler>
<!-- helloName is the single host name this instance of James will
use to identify itself for example, in SMTP and POP3 greetings. If
autodetect is TRUE, James will attempt to discover its own name OR
use 'localhost'. If autodetect is FALSE, James will use the value
given OR 'localhost' -->
<!-- SAM - START -->
<helloName autodetect="FALSE">secemail.com</helloName>
<!-- END -->
<administrator_accounts>
<!-- CHECKME! Change the default password! -->
<!-- FILL ME!!!!!! You must provide a password for your
administrator accounts (cannot be blank) -->
<!-- SAM - START -->
<account login="root" password="sambol105"/>
<!-- END -->
</administrator_accounts>
<connectiontimeout> 60000 </connectiontimeout>
</handler>
</remotemanager>
<!-- WARNING - The IMAP server is only experimental, ie pre-alpha -->
<imapserver>
<port>143</port>
<!-- <port>995</port> -->
<!-- need to check what if any IMAP over SSL uses -->
<!-- <bind> </bind> uncomment this if you want to bind to a specific
inetaddress-->
<!-- <useTLS>true</useTLS> uncomment this if you want to use TLS (SSL)
on this port -->
<handler>
<!-- helloName is the single host name this instance of James will
use to identify itself for example, in SMTP and POP3 greetings. If
autodetect is TRUE, James will attempt to discover its own name OR
use 'localhost'. If autodetect is FALSE, James will use the value
given OR 'localhost' -->
<helloName autodetect="FALSE">secemail.com</helloName>
<connectiontimeout>1800000</connectiontimeout>
</handler>
</imapserver>
<imaphost>
<recordRepository>var\mail\folderRecords</recordRepository>
<mailboxRepository>var\mail\mailboxes</mailboxRepository>
<!--
<namespaces token="#">
<privateNamespace separator=".">#mail</privateNamespace>
<otherusersNamespace separator=".">#users</otherusersNamespace>
<sharedNamespace separator=".">#shared</sharedNamespace>
</namespaces>
-->
</imaphost>
<imapsystem>
</imapsystem>
<!-- SAM -->
<!-- Disabled POP3 Server -->
<!--<pop3server>
<port>110</port>-->
<!-- <port>995</port> -->
<!-- port 995 is the well-known/IANA registered port for POP3S
ie over SSL/TLS -->
<!-- <bind> </bind> uncomment this if you want to bind to a specific
inetaddress-->
<!-- <useTLS>true</useTLS> uncomment this if you want to use TLS (SSL)
on this port -->
<!--<handler>-->
<!-- helloName is the single host name this instance of James will
use to identify itself for example, in SMTP and POP3 greetings. If
autodetect is TRUE, James will attempt to discover its own name OR
use 'localhost'. If autodetect is FALSE, James will use the value
given OR 'localhost' -->
<!-- SAM - START -->
<!--<helloName autodetect="FALSE">secemail.com</helloName>-->
<!--<connectiontimeout>120000</connectiontimeout>-->
<!-- 1 hour timeout period -->
<!--<connectiontimeout>3600000</connectiontimeout>-->
<!-- END -->
<!--</handler>
</pop3server>-->
<smtpserver>
<port>25</port>
<!--<bind></bind> uncomment this if you want to bind to a specific
inetaddress -->
<!--<useTLS>true</useTLS> uncomment this if you want to use TLS (SSL)
on this port -->
<handler>
<!-- helloName is the single host name this instance of James will
use to identify itself for example, in SMTP and POP3 greetings. If
autodetect is TRUE, James will attempt to discover its own name OR
use 'localhost'. If autodetect is FALSE, James will use the value
given OR 'localhost' -->
<!-- SAM - START -->
<helloName autodetect="FALSE">secemail.com</helloName>
<!-- END -->
<connectiontimeout>360000</connectiontimeout>
<!--<authRequired>true</authRequired> uncomment this if you want
SMTP AUTH support. This is useful if you have users who need to use
the email server on the road, while not having your server act as an
open relay! -->
<!--<verifyIdentity>true</verifyIdentity> uncomment this if you want
to verify that the MAIL FROM: address is the same user that
authenticated. This prevents a user of your mail server from acting
as somebody else -->
<!-- This sets the maximum allowed message size for the smtphandler
in KBytes. The value defaults to 0, which means no limit. -->
<!-- SAM - START -->
<!--<maxmessagesize>0</maxmessagesize>-->
<!--<maxmessagesize>1024</maxmessagesize>-->
<maxmessagesize>1350</maxmessagesize>
<!-- END -->
</handler>
</smtpserver>
<!-- SAM -->
<!-- Disabled NNTP Server -->
<!--<nntpserver>
<port>119</port>-->
<!-- <port>563</port> -->
<!-- port 563 is the well-known/IANA registered port for NNTPS
ie over SSL/TLS -->
<!-- <bind> </bind> uncomment this if you want to bind to a specific
inetaddress-->
<!-- <useTLS>true</useTLS> uncomment this if you want to use TLS (SSL)
on this port -->
<!--<handler>-->
<!-- helloName is the single host name this instance of James will
use to identify itself for example, in SMTP and POP3 greetings. If
autodetect is TRUE, James will attempt to discover its own name OR
use 'localhost'. If autodetect is FALSE, James will use the value
given OR 'localhost' -->
<!-- SAM - START -->
<!--<helloName autodetect="FALSE">secemail.com</helloName>-->
<!-- END -->
<!--<connectiontimeout>120000</connectiontimeout>
</handler>
</nntpserver>-->
<!-- SAM -->
<!-- Disabled NNTP AUTH Service -->
<!--<nntpauth>-->
<!-- make this true, if you want only authenticated users to access NNTP-->
<!--<authRequired>false</authRequired>
</nntpauth>-->
<!-- SAM -->
<!-- Disabled NNTP Repository -->
<!--<nntp-repository>-->
<!-- make this true to disallow posting to all newsgroups-->
<!--<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>-->
<!-- these additional news groups would be created and exposed-->
<!--<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>-->
<!-- 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>1000</threadIdleTime>
</configuration>
</spool>
</nntp-repository>-->
<!-- The High Level Storage block -->
<mailstore>
<repositories>
<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>
<!-- These repositories store the entire message 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>
</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>
</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>
</config>
</repository>
</repositories>
<!-- Spool repository configuration -->
<!-- The spool repository is a singular location where incoming mails
are temporarily stored before being processed.
(ex. file://c:/james/spool/) -->
<!-- Default setting: file based repository - enter path ( :/// for absolute) -->
<!-- SAM - START -->
<!-- removed - using db version -->
<!--<spoolRepository>
<repository destinationURL="file://var/mail/spool/"
type="SPOOL">
</repository>
</spoolRepository>-->
<!-- Alternative spool repository definition for JDBC use -->
<spoolRepository>
<repository destinationURL="db://maildb/message/spool"
type="SPOOL">
</repository>
</spoolRepository>
<!-- END -->
</mailstore>
<!-- The User Storage block -->
<users-store>
<!-- Configure User Repositories here.
User repositories are required for the following purposes:
- hold information about Users of the James mail server
- hold lists of users for the listserv mailet
Currently, 2 different storage options are available:
- file-based storage using Java serialisation
- database-backed storage
(Use of database or file-system is defined on a "per-repository" basis)
Note: Two user repositories are required for default configuration:
LocalUsers - the users for whom you are providing POP3, NNTP, or
AUTH service
list-james - the users of the james@localhost mailiinglist
-->
<!-- Default: File-based user repositories
Use these configurations to store user info in the filesystem -->
<!-- The LocalUsers repository, for storing James' User info. -->
<!-- SAM - START -->
<!-- removed - using db version -->
<!--<repository name="LocalUsers"
class="org.apache.james.userrepository.UsersFileRepository">
<destination URL="file://var/users/"/>
</repository>-->
<!-- The list used by the default ListServ mailet -->
<!--<repository name="list-james"
class="org.apache.james.userrepository.UsersFileRepository">
<destination URL="file://var/lists/list-james/"/>
</repository>-->
<!-- END -->
<!-- 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. -->
<!-- SAM - START -->
<!-- removed - using db version -->
<repository name="LocalUsers"
class="org.apache.james.userrepository.JamesUsersJdbcRepository"
destinationURL="db://maildb/users">
<sqlFile>file://conf/sqlResources.xml</sqlFile>
</repository>
<!-- The list used by the default ListServ mailet -->
<repository name="list-james"
class="org.apache.james.userrepository.ListUsersJdbcRepository"
destinationURL="db://maildb/lists/list-james">
<sqlFile>file://conf/sqlResources.xml</sqlFile>
</repository>
<!-- END -->
<!-- An example mailinglist repository, with no "listName" parameter
specified. Uses the default value from the sql definition file. -->
<!-- Testing purposes only. -->
<!-- <repository name="list-test"
class="org.apache.james.userrepository.ListUsersJdbcRepository"
destinationURL="db://maildb/lists">
<sqlFile>file://conf/sqlResources.xml</sqlFile>
</repository>
-->
<!-- An example UserRepository for DefaultUser implementations. -->
<!-- Testing purposes only. -->
<!-- <repository name="default-users"
class="org.apache.james.userrepository.DefaultUsersJdbcRepository"
destinationURL="db://maildb/DefaultUsers">
<sqlFile>file://conf/sqlResources.xml</sqlFile>
</repository>
-->
</users-store>
<!-- The database-connections block -->
<database-connections>
<!-- Confugure database connections here.
These connections are referred to by name elsewhere in the config file -->
<!-- CHECKME! To allow James to use a database, configure the database connection here -->
<data-sources>
<!-- SAM - START -->
<!-- removed - using db version -->
<data-source name="maildb"
class="org.apache.james.util.mordred.JdbcDataSource">
<driver>oracle.jdbc.driver.OracleDriver</driver>
<dburl>jdbc:oracle:thin:@localhost:1521:mail01</dburl>
<user>system</user>
<password>manager</password>
<!-- SAM -->
<max>0</max>
<!-- END -->
</data-source>
<!-- END -->
<!-- Example, connecting to a MySQL database called "mail" on localhost
-->
<!--
<data-source name="maildb"
class="org.apache.james.util.mordred.JdbcDataSource">
<driver>org.gjt.mm.mysql.Driver</driver>
<dburl>jdbc:mysql://127.0.0.1/mail</dburl>
<user>username</user>
<password>password</password>
</data-source>
<data-source name="maildb"
class="org.apache.james.util.mordred.JdbcDataSource">
<driver>com.inet.tds.TdsDriver</driver>
<dburl>jdbc:inetdae7:127.0.0.1?database=James</dburl>
<user>sa_james</user>
<password>blahblah</password>
</data-source>
-->
</data-sources>
</database-connections>
<!-- Configuration for Cornerstone Blocks only after here
NOTHING BELOW THIS SHOULD NEED CHANGING,
(unless you want secure sockets (TLS)) -->
<!-- The Storage block -->
<objectstorage>
<repositories>
<repository class="org.apache.avalon.cornerstone.blocks.masterstore.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.avalon.cornerstone.blocks.masterstore.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>
</objectstorage>
<!-- The Socket Manager block -->
<sockets>
<server-sockets>
<!-- SAM -->
<!--<factory name="plain"
class="org.apache.avalon.cornerstone.blocks.sockets.DefaultServerSocketFactory" />-->
<factory name="ssl"
class="org.apache.avalon.cornerstone.blocks.sockets.TLSServerSocketFactory">
<keystore>
<file>conf/somekeystorefile</file>
<password>somepassword</password>
<type>JKS</type>
<protocol>TLS</protocol>
<algorithm>SunX509</algorithm>
<authenticate-client>false</authenticate-client>
</keystore>
</factory>
<!-- END -->
</server-sockets>
<client-sockets>
<factory name="plain"
class="org.apache.avalon.cornerstone.blocks.sockets.DefaultSocketFactory" />
</client-sockets>
</sockets>
<thread-manager>
<thread-group>
<name>default</name>
<!-- normal priority == 5, max-priority = 10 -->
<priority>5</priority>
<!-- are threads deamon threads ? -->
<is-daemon>false</is-daemon>
<max-threads>40</max-threads>
<!-- these are ignored at the moment but will be fixed in later revisions -->
<min-threads>20</min-threads>
<min-spare-threads>20</min-spare-threads>
</thread-group>
</thread-manager>
</config>
<?xml version="1.0"?>
<!-- ==========================================================================
James build file $Revision: 1.96 $ Committed on $Date: 2002/05/31 09:19:43 $ by: $Author: danny $
Authors:
Federico Barbieri <[EMAIL PROTECTED]>
Serge
Charles Benett <[EMAIL PROTECTED]>
Peter Donald <[EMAIL PROTECTED]>
Harmeet Bedi <[EMAIL PROTECTED]>
Danny Angus <[EMAIL PROTECTED]>
Legal:
Copyright (c) 1999-2002 The Apache Software Foundation. All Rights Reserved.
==============================================================================
-->
<project default="main" basedir=".">
<!--
Give user a chance to override without editing this file
(and without typing -D each time he compiles it)
-->
<property file=".ant.properties"/>
<property file="${user.home}/.ant.properties"/>
<property name="name" value="james"/>
<property name="Name" value="James"/>
<property name="version" value="2.1a1-cvs"/>
<property name="year" value="1999-2002"/>
<!-- There should be no need to override default compiler but need to change
javac task to run without this -->
<property name="build.compiler" value="classic"/>
<!--
these are here only for those who use jikes compiler. For other
developers this part makes no difference.
-->
<property name="build.compiler.emacs" value="on"/>
<property name="build.compiler.pedantic" value="true"/>
<property name="build.compiler.depend" value="true"/>
<property name="build.compiler.fulldepend" value="true"/>
<property name="debug" value="on"/>
<property name="optimize" value="on"/>
<property name="deprecation" value="on"/>
<!--
===================================================================
Set the properties for intermediate directory
===================================================================
-->
<property name="build.dir" value="build"/>
<property name="build.lib" value="${build.dir}/lib"/>
<property name="build.src" value="${build.dir}/src"/>
<property name="build.classes" value="${build.dir}/classes"/>
<property name="build.javadocs" value="${build.dir}/javadocs"/>
<property name="build.docs" value="${build.dir}/docs"/>
<property name="build.mailetdocs" value="${build.dir}/mailetdocs"/>
<property name="build.conf" value="${build.dir}/conf"/>
<!--
===================================================================
Set the properties for source directories
===================================================================
-->
<property name="src.dir" value="src"/>
<property name="java.dir" value="${src.dir}/java"/>
<property name="conf.dir" value="${src.dir}/conf"/>
<property name="scripts.dir" value="${src.dir}/script"/>
<property name="xdocs.dir" value="${src.dir}/xdocs"/>
<property name="docs.src" value="${xdocs.dir}"/>
<property name="dist.dir" value="dist/${name}-${version}"/>
<property name="proposal.base" value="proposals"/>
<property name="java.proposal.dir" value="${proposal.dir}/java"/>
<property name="conf.proposal.dir" value="${proposal.dir}/conf"/>
<property name="lib.dir" value="lib"/>
<property name="tools.dir" value="tools"/>
<property name="phoenix" value="phoenix-bin"/>
<property name="docs.dir" value="docs"/>
<property name="javadocs.dir" value="${docs.dir}/api"/>
<property name="mailetdocs.dir" value="${docs.dir}/mailet"/>
<property name="rfcs.dir" value="${docs.dir}/rfclist"/>
<property name="www.dir" value="www"/>
<property name="dist.name" value="${name}-${version}"/>
<property name="constants.file" value="org/apache/james/Constants.java"/>
<property name="poolconn.file" value="org/apache/james/util/mordred/PoolConnEntry.java"/>
<property name="conf.file" value="james.conf.xml"/>
<property name="server.file" value="james.server.xml"/>
<property name="site.dir" value="../xml-site/sources/james"/>
<property name="site.docs" value="../xml-site/targets/james"/>
<!--
===================================================================
Set the classpath
===================================================================
-->
<property name="xerces.jar" value="${lib.dir}/xerces-1.4.3.jar"/>
<property name="avalon-jmx.jar" value="${lib.dir}/avalon-jmx-20011230.jar"/>
<!--
<property name="activation.jar" value="${lib.dir}/activation.jar"/>
-->
<path id="project.class.path">
<pathelement location="${xerces.jar}"/>
<pathelement location="${framework.jar}"/>
<pathelement location="${excalibur.jar}"/>
<pathelement location="${scratchpad.jar}"/>
<pathelement location="${logkit.jar}"/>
<pathelement location="${phoenix.client.jar}"/>
<pathelement location="${cornerstone.bar}"/>
<pathelement path="${java.class.path}"/>
<fileset dir="${lib.dir}">
<include name="*.jar"/>
<exclude name="xerces.jar"/>
</fileset>
<fileset dir="phoenix-bin/lib">
<include name="*.jar"/>
</fileset>
<pathelement path="${build.classes}"/>
</path>
<taskdef name="sar" classname="org.apache.avalon.phoenix.tools.tasks.Sar">
<classpath refid="project.class.path"/>
</taskdef>
<!--
===================================================================
Main target
===================================================================
-->
<target name="main" depends="dist-lite"/>
<!--
===================================================================
Prepare
===================================================================
-->
<target name="prepare">
<echo message="preparing code"/>
<tstamp/>
<property name="dist.bin" value="${dist.dir}/bin"/>
<property name="dist.apps" value="${dist.dir}/apps"/>
<property name="dist.lib" value="${dist.dir}/lib"/>
<property name="dist.docs" value="${dist.dir}/docs"/>
<property name="dist.javadocs" value="${dist.dir}/docs/api"/>
<available property="jdbc3.present" classname="java.sql.Savepoint"/>
<mkdir dir="${dist.dir}"/>
<copy todir="${dist.dir}">
<fileset dir="${phoenix}">
<exclude name="CVS/**"/>
</fileset>
<fileset dir=".">
<include name="release-notes.txt"/>
<include name="LICENSE.txt"/>
</fileset>
</copy>
<fixcrlf srcdir="${java.dir}" includes="**/*.java" eol="lf"/>
<fixcrlf srcdir="${dist.dir}/bin" includes="run.bat" eol="crlf"/>
<fixcrlf srcdir="${dist.dir}/bin" includes="run.sh" eol="lf"/>
<chmod perm="+x">
<fileset dir="${dist.dir}/bin">
<include name="run.sh"/>
</fileset>
</chmod>
<fixcrlf srcdir="." includes="build.sh" eol="lf"/>
<fixcrlf srcdir="." includes="build.bat" eol="crlf"/>
<chmod perm="+x">
<fileset dir=".">
<include name="build.sh"/>
</fileset>
</chmod>
<available classname="org.apache.velocity.anakia.AnakiaTask" property="AnakiaTask.present"/>
<mkdir dir="${build.src}"/>
<copy todir="${build.src}">
<fileset dir="${java.dir}">
<include name="${constants.file}"/>
<include name="${poolconn.file}"/>
</fileset>
</copy>
<replace file="${build.src}/${constants.file}" token="@@VERSION@@" value="${version}"/>
<replace file="${build.src}/${constants.file}" token="@@NAME@@" value="${Name}"/>
<replace file="${build.src}/${constants.file}" token="@@DATE@@" value="${TODAY}"/>
</target>
<!--
===================================================================
jdbc3
===================================================================
-->
<target name="prepare-jdbc3" depends="prepare" if="jdbc3.present">
<echo message="preparing for JDBC3"/>
<replace file="${build.src}/${poolconn.file}" token="/* JDBC_3_ANT_KEY" value=""/>
<replace file="${build.src}/${poolconn.file}" token="JDBC_3_ANT_KEY */" value=""/>
</target>
<!--
===================================================================
check for anakia
===================================================================
-->
<target name="prepare-docs" depends="prepare,prepare-jdbc3" unless="AnakiaTask.present">
<echo>
AnakiaTask is not present! Please check to make sure that
velocity.jar is in your classpath.
Please read http://jakarta.apache.org/site/jakarta-site2.html and
understand the 'How To: From Scratch' section before attempting
to build xdocs on your local machine.
</echo>
</target>
<!--
===================================================================
compile
===================================================================
-->
<target name="compile" depends="prepare,prepare-jdbc3">
<echo message="compiling James"/>
<available property="jndi.present" classname="javax.naming.InitialContext"/>
<mkdir dir="${build.classes}"/>
<javac destdir="${build.classes}" debug="${debug}" optimize="${optimize}" deprecation="${deprecation}">
<classpath refid="project.class.path"/>
<src path="${build.src}"/>
<src path="${java.dir}"/>
<exclude name="${constants.file}"/>
<exclude name="${poolconn.file}"/>
<exclude name="org/apache/james/userrepository/UsersLDAPRepository.java" unless="jndi.present"/>
</javac>
<copy todir="${build.classes}">
<fileset dir="${java.dir}">
<include name="**/*.properties"/>
<include name="**/*.xinfo"/>
</fileset>
</copy>
</target>
<!--
===================================================================
Javadocs, and mailet javadocs
===================================================================
-->
<target name="javadocs">
<echo message="Making James javadocs"/>
<delete dir="${build.javadocs}"/>
<mkdir dir="${build.javadocs}"/>
<javadoc packagenames="org.apache.*" sourcepath="${java.dir}" destdir="${build.javadocs}">
<classpath refid="project.class.path"/>
<doclet name="com.sun.tools.doclets.standard.Standard">
<param name="-author"/>
<param name="-version"/>
<param name="-breakiterator"/>
<param name="-use"/>
<param name="-doctitle" value="${Name} ${version}"/>
<param name="-windowtitle" value="${Name} API"/>
<param name="-bottom" value=""Copyright © 2001 Apache Jakarta Project. All Rights Reserved.""/>
</doclet>
</javadoc>
<echo message="Making Mailet javadocs"/>
<javadoc packagenames="org.apache.mailet.*" sourcepath="${java.dir}" destdir="${build.dir}/mailet">
<classpath refid="project.class.path"/>
<doclet name="com.sun.tools.doclets.standard.Standard">
<param name="-author"/>
<param name="-version"/>
<param name="-breakiterator"/>
<param name="-use"/>
<param name="-doctitle" value="Apache Jakarta Mailet API"/>
<param name="-windowtitle" value="Apache Jakarta Mailet API"/>
<param name="-bottom" value=""Copyright © 2002 Apache Jakarta Project. All Rights Reserved.""/>
</doclet>
</javadoc>
</target>
<!--
===================================================================
build xdocs
===================================================================
-->
<target name="xdocs" depends="prepare-docs" if="AnakiaTask.present">
<echo message="Making HTML documnentation"/>
<taskdef name="anakia" classname="org.apache.velocity.anakia.AnakiaTask"/>
<anakia basedir="${docs.src}" destdir="${build.docs}/" extension=".html" style="./site.vsl" projectFile="stylesheets/project.xml" excludes="**/stylesheets/** empty.xml" includes="**/*.xml" lastModifiedCheck="true" templatePath="../jakarta-site2/xdocs/stylesheets"/>
<copy todir="${build.docs}/images" filtering="no">
<fileset dir="${docs.src}/images">
<include name="**/*.gif"/>
<include name="**/*.jpeg"/>
<include name="**/*.jpg"/>
</fileset>
</copy>
<mkdir dir="${dist.dir}/docs"/>
<copy todir="${dist.dir}/docs" filtering="no">
<fileset dir="${build.docs}"/>
</copy>
</target>
<!--
===================================================================
build website
===================================================================
-->
<target name="website" depends="xdocs,javadocs">
<echo message="preparing website in ${www.dir}"/>
<delete>
<fileset dir="${www.dir}">
<exclude name="CVS/**"/>
<exclude name="rfclist/**"/>
<exclude name="javadocs/**"/>
<exclude name="mailet/**"/>
</fileset>
</delete>
<mkdir dir="${www.dir}"/>
<copy todir="${www.dir}" filtering="no">
<fileset dir="${build.docs}"/>
</copy>
<copy todir="${www.dir}" filtering="no">
<fileset dir="${build.dir}">
<include name="javadocs/**"/>
<include name="mailet/**"/>
</fileset>
</copy>
</target>
<!--
===================================================================
Build everything
===================================================================
-->
<target name="everything" depends="clean,website,dist-bin,dist-src,dist-mailet-SDK"/>
<!--
===================================================================
Build all distributions
===================================================================
-->
<target name="dist" depends="dist-bin,dist-src,dist-mailet-SDK"/>
<!--
===================================================================
Make james.sar
===================================================================
-->
<target name="sar" depends="prepare,compile">
<echo message="Making James.sar"/>
<!-- builds james-sar-->
<mkdir dir="${build.lib}"/>
<!-- Make james.jar-->
<jar jarfile="${build.lib}/${name}.jar" basedir="${build.classes}" manifest="${src.dir}/Manifest.mf">
<include name="org/apache/james/**"/>
<exclude name="org/apache/mailet/**"/>
</jar>
<!-- Make mailet.jar-->
<jar jarfile="${build.lib}/mailet.jar" basedir="${build.classes}" manifest="${src.dir}/Manifest.mf" includes="org/apache/mailet/**"/>
<!-- Make sar file-->
<sar sarfile="${build.lib}/${name}.sar" config="src/conf/james-config.xml" environment="src/conf/james-server.xml" assembly="src/conf/james-assembly.xml">
<lib dir="${build.lib}/">
<include name="*.jar"/>
</lib>
<lib dir="lib">
<include name="cornerstone.jar"/>
<include name="dnsjava-1.2.3.jar"/>
<include name="activation.jar"/>
<include name="mail_1_2.jar"/>
<include name="jakarta-oro-2.0.1.jar"/>
<!-- SAM -->
<include name="jsse.jar"/>
<!-- END -->
</lib>
<!-- SAM -->
<zipfileset dir="${conf.dir}" fullpath="conf/somekeystorefile">
<include name="somekeystorefile"/>
</zipfileset>
<!-- END -->
<zipfileset dir="${conf.dir}" fullpath="conf/sqlResources.xml">
<include name="sqlResources.xml"/>
</zipfileset>
</sar>
</target>
<!--
===================================================================
Make dist directory with unpacked dist ready to run
===================================================================
-->
<target name="dist-lite" depends="sar">
<echo message="Installing James to ${dist.dir}"/>
<!--installs sar into ./dist/ ready to test-->
<copy file="${build.lib}/${name}.sar" todir="${dist.dir}/apps"/>
</target>
<!--
===================================================================
binary distributions
===================================================================
-->
<target name="dist-bin" depends="dist-lite,xdocs,javadocs">
<echo message ="building binary distributions"/>
<mkdir dir="${dist.dir}/downloads/bin"/>
<!-- binary with phoenix -->
<zip zipfile="${dist.dir}/downloads/bin/${name}-binary-${version}.zip">
<fileset dir="dist">
<include name="${name}-${version}/**"/>
<exclude name="${name}-${version}/downloads/**"/>
<include name="release-notes.txt"/>
<include name="LICENSE.txt"/>
</fileset>
</zip>
<tar longfile="gnu" tarfile="${dist.dir}/downloads/bin/${name}-binary-${version}.tar">
<tarfileset dir="dist" username="${name}" group="${name}">
<include name="${name}-${version}/**"/>
<exclude name="${name}-${version}/downloads/**"/>
<include name="release-notes.txt"/>
<include name="LICENSE.txt"/>
</tarfileset>
</tar>
<gzip zipfile="${dist.dir}/downloads/bin/${name}-binary-${version}.tar.gz" src="${dist.dir}/downloads/bin/${name}-binary-${version}.tar"/>
<delete file="${dist.dir}/downloads/bin/${name}-binary-${version}.tar"/>
<!-- Sar only-->
<copy file="${dist.dir}/apps/${name}.sar" todir="${dist.dir}/downloads/bin"/>
</target>
<!--
===================================================================
source distributions
===================================================================
-->
<target name="dist-src" depends="dist-lite,xdocs,javadocs">
<echo message ="building source distributions"/>
<mkdir dir="${dist.dir}/downloads/src"/>
<zip zipfile="${dist.dir}/downloads/src/${name}-${version}-src.zip">
<fileset dir=".">
<include name="src/**"/>
<include name="lib/**"/>
<include name="proposals/**"/>
<include name="www/**"/>
<include name="tools/**"/>
<include name="*.xml"/>
<include name="*.txt"/>
<include name="README"/>
<include name="KEYS"/>
<include name="build.*"/>
</fileset>
</zip>
<tar longfile="gnu" tarfile="${dist.dir}/downloads/src/${name}-${version}-src.tar">
<tarfileset dir="." username="${name}" group="${name}">
<include name="src/**"/>
<include name="lib/**"/>
<include name="proposals/**"/>
<include name="www/**"/>
<include name="tools/**"/>
<include name="*.xml"/>
<include name="*.txt"/>
<include name="README"/>
<include name="KEYS"/>
<include name="build.*"/>
</tarfileset>
</tar>
<gzip zipfile="${dist.dir}/downloads/src/${name}-${version}-src.tar.gz" src="${dist.dir}/downloads/src/${name}-${version}-src.tar"/>
<delete file="${dist.dir}/downloads/src/${name}-${version}-src.tar"/>
<!--Source With Phoenix -->
<zip zipfile="${dist.dir}/downloads/src/${name}-with-phoenix-${version}-src.zip">
<fileset dir=".">
<include name="${dist.dir}/**"/>
<exclude name="${dist.dir}/downloads/**"/>
<exclude name="${dist.dir}/apps/*.sar"/>
<exclude name=""/>
<include name="*.txt"/>
<include name="*.xml"/>
<include name="KEYS"/>
<include name="README"/>
<include name="build.*"/>
<include name="lib/**"/>
<include name="proposals/**"/>
<include name="src/**"/>
<include name="tools/**"/>
<include name="www/**"/>
</fileset>
</zip>
<tar longfile="gnu" tarfile="${dist.dir}/downloads/src/${name}-with-phoenix-${version}-src.tar">
<tarfileset dir="." username="${name}" group="${name}">
<include name="${dist.dir}/**"/>
<exclude name="${dist.dir}/downloads/**"/>
<exclude name="${dist.dir}/apps/*.sar"/>
<include name="*.txt"/>
<include name="*.xml"/>
<include name="KEYS"/>
<include name="README"/>
<include name="build.*"/>
<include name="lib/**"/>
<include name="proposals/**"/>
<include name="src/**"/>
<include name="tools/**"/>
<include name="www/**"/>
</tarfileset>
</tar>
<gzip zipfile="${dist.dir}/downloads/src/${name}-with-phoenix-${version}-src.tar.gz" src="${dist.dir}/downloads/src/${name}-with-phoenix-${version}-src.tar"/>
<delete file="${dist.dir}/downloads/src/${name}-with-phoenix-${version}-src.tar"/>
</target>
<!--
===================================================================
Mailet SDK distribution
===================================================================
-->
<target name="dist-mailet-SDK" depends="dist-lite,xdocs,javadocs">
<echo message ="building mailet SDK distributions"/>
<mkdir dir="${dist.dir}/MailetSDK/src"/>
<mkdir dir="${dist.dir}/MailetSDK/javadocs"/>
<copy todir="${dist.dir}/MailetSDK/src">
<fileset dir="src">
<include name="**/mailet/**"/>
</fileset>
</copy>
<copy todir="${dist.dir}/MailetSDK/javadocs">
<fileset dir="${build.dir}/mailet">
<include name="**/*"/>
</fileset>
</copy>
<zip zipfile="${dist.dir}/downloads/bin/${name}-MailetSDK-${version}.zip">
<fileset dir="dist">
<include name="${name}-${version}/**"/>
<exclude name="${name}-${version}/downloads/**"/>
</fileset>
</zip>
<tar longfile="gnu" tarfile="${dist.dir}/downloads/bin/${name}-MailetSDK-${version}.tar">
<tarfileset dir="dist" username="${name}" group="${name}">
<include name="${name}-${version}/**"/>
<exclude name="${name}-${version}/downloads/**"/>
</tarfileset>
</tar>
<gzip zipfile="${dist.dir}/downloads/bin/${name}-MailetSDK-${version}.tar.gz" src="${dist.dir}/downloads/bin/${name}-MailetSDK-${version}.tar"/>
<delete file="${dist.dir}/downloads/bin/${name}-MailetSDK-${version}.tar"/>
<delete dir="${dist.dir}/MailetSDK"/>
</target>
<!--
===================================================================
delete dist/ and build/
===================================================================
-->
<target name="clean">
<echo message ="deleting working directories ready for a clean build"/>
<delete dir="${dist.dir}"/>
<delete dir="${build.dir}"/>
</target>
<!-- =================================================================== -->
<!-- Help on usage -->
<!-- =================================================================== -->
<target name="usage">
<echo message=""/>
<echo message=""/>
<echo message="JAMES Build file"/>
<echo message="-------------------------------------------------------------"/>
<echo message=""/>
<echo message=" available targets are:"/>
<echo message=""/>
<echo message=" dist-lite --> generates unpacked distribution (default)"/>
<echo message=" website --> makes all the docs and javadocs"/>
<echo message=" compile --> compiles the source code"/>
<echo message=" dist --> generates all the JAMES distributions, packed"/>
<echo message=" clean --> cleans up the directory"/>
<echo message=" xdocs --> created the documentaion for James"/>
<echo message=" javadocs --> creates the Javadoc"/>
<echo message=""/>
<echo message=" See the comments inside the build.xml file for more details."/>
<echo message="-------------------------------------------------------------"/>
<echo message=""/>
<echo message=""/>
</target>
<target name="help" depends="usage"/>
</project>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>