You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by rd...@apache.org on 2007/03/24 20:12:17 UTC
svn commit: r522096 - in /james/jsieve/trunk: pom.xml src/site/xdoc/index.xml
Author: rdonkin
Date: Sat Mar 24 12:12:16 2007
New Revision: 522096
URL: http://svn.apache.org/viewvc?view=rev&rev=522096
Log:
Added more detail to the jSieve documentation. Hopefully people will jump in and correct any mistakes.
Modified:
james/jsieve/trunk/pom.xml
james/jsieve/trunk/src/site/xdoc/index.xml
Modified: james/jsieve/trunk/pom.xml
URL: http://svn.apache.org/viewvc/james/jsieve/trunk/pom.xml?view=diff&rev=522096&r1=522095&r2=522096
==============================================================================
--- james/jsieve/trunk/pom.xml (original)
+++ james/jsieve/trunk/pom.xml Sat Mar 24 12:12:16 2007
@@ -47,7 +47,7 @@
<distributionManagement>
<site>
<id>jsieve-website</id>
- <url>scp://minotaur.apache.org/www/james.apache.org/jsieve/</url>
+ <url>scp://people.apache.org/www/james.apache.org/jsieve/</url>
</site>
</distributionManagement>
@@ -245,5 +245,22 @@
</plugin>
</plugins>
</reporting>
+
+ <mailingLists>
+ <mailingList>
+ <name>Apache James User</name>
+ <subscribe>server-user-subscribe@james.apache.org</subscribe>
+ <unsubscribe>server-user-unsubscribe@james.apache.org</unsubscribe>
+ <post>server-user@james.apache.org</post>
+ <archive>http://mail-archives.apache.org/mod_mbox/james-server-user/</archive>
+ </mailingList>
+ <mailingList>
+ <name>Apache James Developer</name>
+ <subscribe>server-dev-subscribe@james.apache.org</subscribe>
+ <unsubscribe>server-dev-unsubscribe@james.apache.org</unsubscribe>
+ <post>server-dev@james.apache.org</post>
+ <archive>http://mail-archives.apache.org/mod_mbox/james-server-dev/</archive>
+ </mailingList>
+ </mailingLists>
</project>
Modified: james/jsieve/trunk/src/site/xdoc/index.xml
URL: http://svn.apache.org/viewvc/james/jsieve/trunk/src/site/xdoc/index.xml?view=diff&rev=522096&r1=522095&r2=522096
==============================================================================
--- james/jsieve/trunk/src/site/xdoc/index.xml (original)
+++ james/jsieve/trunk/src/site/xdoc/index.xml Sat Mar 24 12:12:16 2007
@@ -9,27 +9,184 @@
<body>
<section name="What is jSieve?">
-<p>jSieve is a Java implementation of the Sieve mail filtering language defined by
-RFC 3028. jSieve is implemented as a langauge processor that can be plugged into any
-internet mail application to add Sieve support.</p>
+<p>
+jSieve is a Java implementation of the Sieve mail filtering language defined by
+<a href='http://www.rfc-editor.org/rfc/rfc3028.txt'>RFC 3028</a>. jSieve is implemented
+as a language processor that can be plugged into any internet mail application to add
+Sieve support.
+</p>
+<p>
+jSieve is a subproject of <a href='http://james.apache.org'>Apache JAMES</a>.
+All who are interested in developing jSieve and JAMES will be warmly
+welcomed on the <a href='mail-lists.html'>mailing lists</a>.
+</p>
+<subsection name='What is Sieve?'>
+<p>
+Sieve is an extensible mail filtering language. It's limited expressiveness (no loops
+or variables, no tests with side effects) allows user created scripts to be run
+safely on email servers. Sieve is targeted at the final delivery phase
+(where an incoming email is transfered to a user's mailbox).
+</p>
+<p>
+Sieve scripts are composed of commands. Control commands manage the execution of the script.
+Test commands define side-effect free criteria.
+Action commands are mail operations to be performed.
+</p>
+
+</subsection>
+<subsection name='Sieve Features Supported By jSieve'>
+<p>
+jSieve is limited only by the platform on which it runs.
+</p>
+<table>
+<tr><th>Limits</th><th/></tr>
+<tr><td>Maximum Number Of Actions</td><td>No intrinsic limit</td></tr>
+<tr><td>Maximum Number Of Nested Blocks</td><td>No intrinsic limit</td></tr>
+<tr><td>Maximum Number Of Nested Test Lists</td><td>No intrinsic limit</td></tr>
+</table>
+<p>
+jSieve supports the standard control commands specified in RFC 3028.
+</p>
+<table>
+<tr>
+<th>Control Command</th><th>Specification</th><th>Supported</th>
+</tr>
+<tr>
+<td>If</td><td>RFC 3028 (REQUIRED)</td><td>yes</td>
+</tr>
+<td>Require</td><td>RFC 3028 (REQUIRED)</td><td>yes</td>
+<tr>
+<td>Stop</td><td>RFC 3028 (REQUIRED)</td><td>yes</td>
+</tr>
+</table>
+<p>
+jSieve supports all action commands (both required and optional)
+specified in RFC 3028.
+</p><p>
+<strong>Note</strong> that jSieve uses a pluggable
+<code>MailAdapter</code> as an interface to the mail server.
+Not all implementations may fully support all actions.
+</p>
+<table>
+<tr>
+<th>Action Command</th><th>Specification</th><th>Supported</th>
+</tr><tr>
+<td>reject</td><td>RFC 3028 (OPTIONAL)</td><td>yes</td>
+</tr><tr>
+<td>fileinto</td><td>RFC 3028 (OPTIONAL)</td><td>yes</td>
+</tr><tr>
+<td>redirect</td><td>RFC 3028 (REQUIRED)</td><td>yes</td>
+</tr><tr>
+<td>keep</td><td>RFC 3028 (REQUIRED)</td><td>yes</td>
+</tr><tr>
+<td>discard</td><td>RFC 3028 (REQUIRED)</td><td>yes</td>
+</tr>
+</table>
+<p>
+jSieve supports all tests commands specified in RFC 3028.
+</p>
+<table>
+<tr>
+<th>Test Command</th><th>Specification</th><th>Supported</th>
+</tr><tr>
+<td>address</td><td>RFC 3028 (REQUIRED)</td><td>yes</td>
+</tr><tr>
+<td>allof</td><td>RFC 3028 (REQUIRED)</td><td>yes</td>
+</tr><tr>
+<td>anyof</td><td>RFC 3028 (REQUIRED)</td><td>yes</td>
+</tr><tr>
+<td>envelope</td><td>RFC 3028 (OPTIONAL)</td><td>yes</td>
+</tr><tr>
+<td>exists</td><td>RFC 3028 (REQUIRED)</td><td>yes</td>
+</tr><tr>
+<td>false</td><td>RFC 3028 (REQUIRED)</td><td>yes</td>
+</tr><tr>
+<td>header</td><td>RFC 3028 (REQUIRED)</td><td>yes</td>
+</tr><tr>
+<td>not</td><td>RFC 3028 (REQUIRED)</td><td>yes</td>
+</tr><tr>
+<td>size</td><td>RFC 3028 (REQUIRED)</td><td>yes</td>
+</tr><tr>
+<td>true</td><td>RFC 3028 (REQUIRED)</td><td>yes</td>
+</tr>
+</table>
+</subsection>
+<subsection name='jSieve Extension Commands'>
+<p>
+jSieve allows extension commands to be developed
+and plugged in at run time.
+The following extension commands ship with jSieve:
+</p>
+<table>
+<tr><th>Name</th><th>Function</th></tr>
+<tr><td>Log</td><td>Logs messages</td></tr>
+</table>
+</subsection>
</section>
<section name="Getting Started">
<p>Until these pages are fleshed out, the best way to understand jSieve is read the
-Javadocs and look at the source code.
-<ul>
-<li>To understand how to invoke jSieve, see
-<code>org.apache.jsieve.SieveFactory</code>.</li>
-<li>To understand how to implement a MailAdapter for jSieve, see
-<code>org.apache.jsieve.mail.MailAdapter</code>.</li>
-<li>To understand how to add a custom extension to jSieve, see
-<code>org.apache.jsieve.commands.extensions.Log</code>.</li>
-<li>The jUnit tests in <code>org.apache.jsieve.junit</code> illustrate many aspects
-of the implementation.</li>
-<li>To build jSieve, run build.sh or build.bat as appropriate for your environment.
-</li>
-</ul>
+<a href='apidocs/index.html'>Javadocs</a>
+and look at the <a href='xref/index.html'>source code</a>.
+The jUnit tests illustrate many aspects
+of the implementation.
+</p>
+<subsection name='Using jSieve'>
+<subsection name='Standalone'>
+<p>
+<a href='xref/org/apache/jsieve/SieveFactory.html'>
+<code>org.apache.jsieve.SieveFactory</code></a> is the primary invocation
+point for all Sieve operations. The API is clean and simple.
+See the
+<a href='apidocs/index.html'>javadocs</a> for more details.
+</p>
+</subsection>
+<subsection name='In JAMES'>
+<p>
+The <code>SieveToMultiMailbox</code> mailet is included in JAMES.
+It is integrated with the message delivery spool and provides per-user
+Sieve scripting using jSieve.
+</p>
+</subsection>
+</subsection>
+<subsection name='Implementing A Mail Adapter'>
+<p>
+<a href='xref/org/apache/jsieve/mail/MailAdapter.html'>
+<code>org.apache.jsieve.mail.MailAdapter</code></a> is the interface API used
+by jSieve to interact with a mail server.
+</p><p>
+The mail adapter wraps an email
+and supplies information (required by the script) about the email. It is
+responsible for accumulating <code>Action</code>s during the parsing of a
+script and for executing them once the parsing is complete.
+</p><p>
+See the
+<a href='apidocs/index.html'>javadocs</a> for more details and this
+<a href='xref/org/apache/jsieve/samples/james/SieveMailAdapter.html'>sample</a>.
+</p>
+</subsection>
+<subsection name='Creating A Custom Extension Command'>
+<p>
+<a href='xref/org/apache/jsieve/commands/extensions/Log.html'>
+<code>org.apache.jsieve.commands.extensions.Log</code></a> is an example
+of a custom extension command. It is recommended that custom commands
+extend <a href='xref/org/apache/jsieve/commands/AbstractCommand.html'>
+<code>AbstractCommand</code></a>. See the
+<a href='apidocs/index.html'>javadocs</a> for more details.
+</p><p>
+Custom commands need to be registered with
+<a href='xref/org/apache/jsieve/ConfigurationManager.html'>
+<code>ConfigurationManager</code></a> before they can be used. This
+may be done programmatically but the recommended method is by altering
+the <code>sieveConfig.xml</code> configuration file.
+</p>
+</subsection>
+<subsection name='Building jSieve'>
+<p>
+jSieve uses <a href='http://ant.apache.org'>Ant</a>. <code>ant -projecthelp</code>
+describes appropriate targets. <code>ant</code> runs the default target.
</p>
+</subsection>
</section>
<section name="Comments, Questions and Issues">
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org