<?xml version="1.0"?>
<!--
  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.  
-->
<document>

 <properties>
  <title>Overview</title>
  <author email="jsieve-dev@jakarta.apache.org">jSieve Project</author>
 </properties>

 <body>
  <section name="What is jSieve?">
   <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 transferred 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>
  </section>
 </body>
</document>
