Sieve 2.2 not working

John Lane listmail at
Wed May 11 19:44:18 EDT 2005

Ok, As I was getting nowhere I delved into the code.

This is what is happening...

When I send a message "deliver" is used to send it into cyrus.

Code in "imap/lmtpd.c" gets executed in a function called "deliver".

This has two bits of code for mail delivery, the first is
"case 1: shared mailbox request" and the second is
"case 2: ordinary user, might have Sieve script"

One would expect the code in case 2 to be called but what
was happening is the code in case 1 is being called.

This decision is made based on the value of a variable called
"user" being null for case 1 and set to a value for case 2.

I tracked this down to my procmail configuration where I had the

DELIVER="$/usr/bin/deliver -a $USER -m user.$USER"

It was missing the user id at the end. I changed it to...

DELIVER="$/usr/bin/deliver -a $USER -m user.$USER $USER"

And Sieve now fires as expected. HOWEVER... I have another problem....

I have a test sieve script that does a "reject" but the mail never
gets returned to the sender (although Sieve does try!!!).

The problem ocurs when I use procmail, the "Return-Path" setting
in the e-mail gets changed by procmail from the real sender to the unix
id that procmail is run as. The message is delivered to this user rather
than the original sender.

Has anyone come across this before and is there a solution ?

BTW my MTA is postfix and the above problem does not happen when I configure
postfix to send directly to cyrus (i.e. bypass procmail).


Cyrus Home Page:
Cyrus Wiki/FAQ:
List Archives/Info:

More information about the Info-cyrus mailing list