sieve problem ?

Ken Murchison murch at
Thu Dec 1 08:42:56 EST 2005

Bob Tito wrote:
> Ken Murchison wrote:
>> Bob Tito wrote:
>>> Ken Murchison wrote:
>>>> Bob Tito wrote:
>>>>> Hi all,
>>>>> At the moment we seem to have a problem with sieve on our 
>>>>> cyrus-imapd-2.2.12 sytem (single instance message store ON)
>>>>> Basically everthing works fine, but:
>>>>> When a message is sent to 2  (or more?) recipients and one has an 
>>>>> vacation message on with the email-address of the otherperson a 
>>>>> vacation message is sent. Now, to make this more clear:
>>>>> sender > recipient-a ( no sieve notification) and recipient-b 
>>>>> (vacation message with email-address of recipient-a)
>>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>> Do you mean that recipient-a has a vacation action in which 
>>>> :addresses includes recipient-a?
>>> Hi Ken,
>>> We tried to be carefull to explain a stupid problem ;-)
>>> recipient-a has a vacation action with the mail-address of recipient-a !
>> This is a normal config.  So recipient-a has a line like the following 
>> in their script:
>> vacation :addresses "recipient-a" "on vacation";
>>> (probably thinking/hoping the mails will be forwarded to recipient-a 
>>> during the holiday)
>>> I Know, I Know, but this is the server of a large hospital, nurses 
>>> and doctors are not the most clever computer/mail users :-)
>>> I hope the problem is less confusing now ?
>> Not really.  I still don't understand the config and the incorrect 
>> behavior.
> Hi Ken, sorry for the direct reply ..
> I'll give it another go...
> sender at dom.ain sends a mail to a at dom.ain and b at dom.ain.
> a at dom.ain has a vacation message with email-address B at domain. <<< which 
> is wrong but...
> sender gets a vacation message from B at dom.ain but that user is NOT away 
> and has no vacation message active ...
> Better try ? :-)

Yeah, the script for a at dom.ain has:

vacation :addresses "b at dom.ain" ...

This is obviously something that makes no sense and IMO falls under the 
GIGO principal (garbage in, garbage out).

The vacation code checks the headers to make sure that one of the 
recipients :addresses is listed to make sure that the message was sent 
directly to them (not some kind of redirect or a mailing list 
distribution).  It then uses the address that it finds as the From: 
address in the response since it will be a fully qualified email address 
(the envelope RCPT TO address most likely will not).

So, in you case, the code happens to find b at dom.ain in the headers first 
and uses this as the From: address.

I don't know what your user is trying to accomplish, but its clearly not 
going to work as expected.  I'd suggest you explain to the user what the 
:addresses field is for and have them use it properly, since I don't see 
anyway of working around this in the code without breaking the intended 

Kenneth Murchison
Systems Programmer
Carnegie Mellon University

More information about the Info-cyrus mailing list