Installing Sieve

This section assumes that you compiled Cyrus with sieve support. If you specified --disable-sieve when running ./configure, you did NOT compile the server with sieve support.

A brief introduction to Sieve at is available from Cyrusoft International.

Configure outgoing mail

Some Sieve actions (redirect, vacation) can send outgoing mail.

You'll need to make sure that "lmtpd" can send outgoing messages. Currently, it invokes "/usr/lib/sendmail" by default to send messages. Change this by adding a line like:

   sendmail: /usr/sbin/sendmail
in your "/etc/imapd.conf". If you're using Postfix or another MTA, make sure that the sendmail referenced in "/etc/imapd.conf" is Sendmail-compatible.

Managing Sieve Scripts

Since Cyrus is based around the concept of a sealed-server, the normal way for users to manipulate Sieve scripts is through the "sieveshell" utility.

If, for some reason, you do have user home directories on the server, you can use the "sieveusehomedir" option and have the sieve script stored in the home directory of the user as "~/.sieve".

Testing the sieve server

  1. The Sieve server, "timsieved", is used for transporting user Sieve scripts to the sealed IMAP server. It is incompatible with the "sieveusehomedir" option. It is named after the principal author, Tim Martin, who desperately wanted something named after him in the Cyrus distribution.

  2. From your normal account, telnet to the sieve port on the server you're setting up:
       telnet foobar sieve
    If your server is running, you'll get a message similar to the following one:
       Connected to
       Escape character is '^]'.
       "IMPLEMENTATION" "Cyrus timsieved v1.1.0"
       "SIEVE" "fileinto reject envelope vacation imapflags notify subaddress regex"

    Any message other than one similar to the one above means there is a problem. Make sure all of authentication methods you wish to support are listed. This list should be identical to the one listed by "imapd" earlier. Next terminate the connection, by typing "logout".

  3. Next test authenticating to the sieve server. To do this run the "sieveshell" utility. You must specify the server. If you run this utility from a different machine without the "sieve" entry in "/etc/services", port 2000 will be used.
      "sieveshell foobar"
        Please enter your password: ******
        > quit
    This should produce the message "Authentication failed" with a description of the failure if there was a problem.

  4. Next you should attempt to place a sieve script on the server. To do this create a file named "myscript.script" with the following lines. Replace "" with an email address you can send mail from, but that is not the one you are working on now.
      require ["reject","fileinto"];
      if address :is :all "From" ""
        reject "testing";
    To place this script on the server run the following command:
      "sieveshell foobar"
        Please enter your password: ******
        > put myscript.script
        > activate myscript
        > quit
    This should place your script on the server and make it the active script.

  5. Test that the sieve script is actually run from deliver. Send a message to the address you're working on from the address mentioned in the sieve script. The message should be rejected.

last modified: $Date: 2001/10/23 18:14:48 $