Re: [Dovecot] dovecot-sieve vacation vs qmail-ldap

2010-02-18 Thread Timo Sirainen
On Tue, 2010-02-16 at 13:34 +0100, Lazy wrote:
  lda is executed as
  exec /var/qmail/bin/preline -f /usr/local/dovecot/libexec/dovecot/deliver -s
..
 +   /* if DTLINE (qmail Delivered-To: header) is not null use it
 as a destination address */
 +   if (destaddr == NULL) {
 +   destaddr = getenv(DTLINE);
 +   if (destaddr != NULL) {
 +   if (strlen(destaddr)  18 )
 +   destaddr = 
 i_strdup(address_sanitize(destaddr+14));
 +   else
 +   destaddr = NULL;
 +   }
 +   }

Isn't it possible to use deliver -a $DTLINE or something?



signature.asc
Description: This is a digitally signed message part


Re: [Dovecot] dovecot-sieve vacation vs qmail-ldap

2010-02-16 Thread Lazy
2010/2/15 Lazy lazy...@gmail.com:
 Helloo,

 We are using dovectot lda with qmail-ldap,

 dovecot 1.2.10, sieve 0.1.15

 lda is executed as
 exec /var/qmail/bin/preline -f /usr/local/dovecot/libexec/dovecot/deliver -s

 preline adds Delivered-To: header,

 everything works fine except vacation

 Feb  9 16:07:16 thebe dovecot: deliver(lazy): sieve:
 msgid=unspecified: discarding vacation response for message implicitly
 delivered to l...@thebe.org
 Feb  9 16:07:16 thebe dovecot: deliver(lazy): sieve:
 msgid=unspecified: stored mail into mailbox 'INBOX'

now I have figured it out, when proper To: header is present in email
body ewerything works (wit the following patch)



 thebe.org is the hostname of the machine, oryginal recipient address
 has other domain

 .dovecot.sieve file looks like this
 require [vacation];

 #autoresponder
 vacation
        :days 1
        :subject Auto Reply / Odpowiedz automatyczna
 a;

 I did experiments with :addresses [*] without any luck.


 deliver only gets user and HOME directory form env variables provided
 by qmail, so it's unaware of the target email address.

 How to fix it ?

 I was thinking about deliver extracting target address from
 Delivered-To: header added by qmail's preline, or use DTLINE env
 variable,
 whitch qmail populates with Delivered-To header.

patch bellow fills destaddr from qmail's DTLINE env,
--- src/deliver/deliver.c   2010-01-25 00:14:17.0 +0100
+++ src/deliver/deliver.c   2010-02-16 12:12:18.0 +0100
@@ -1031,6 +1031,16 @@

if (user == NULL)
user = getenv(USER);
+   /* if DTLINE (qmail Delivered-To: header) is not null use it
as a destination address */
+   if (destaddr == NULL) {
+   destaddr = getenv(DTLINE);
+   if (destaddr != NULL) {
+   if (strlen(destaddr)  18 )
+   destaddr = i_strdup(address_sanitize(destaddr+14));
+   else
+   destaddr = NULL;
+   }
+   }
if (!keep_environment)
deliver_env_clean(!user_auth);



-- 
Lazy


[Dovecot] dovecot-sieve vacation vs qmail-ldap

2010-02-15 Thread Lazy
Helloo,

We are using dovectot lda with qmail-ldap,

dovecot 1.2.10, sieve 0.1.15

lda is executed as
exec /var/qmail/bin/preline -f /usr/local/dovecot/libexec/dovecot/deliver -s

preline adds Delivered-To: header,

everything works fine except vacation

Feb  9 16:07:16 thebe dovecot: deliver(lazy): sieve:
msgid=unspecified: discarding vacation response for message implicitly
delivered to l...@thebe.org
Feb  9 16:07:16 thebe dovecot: deliver(lazy): sieve:
msgid=unspecified: stored mail into mailbox 'INBOX'

thebe.org is the hostname of the machine, oryginal recipient address
has other domain

.dovecot.sieve file looks like this
require [vacation];

#autoresponder
vacation
:days 1
:subject Auto Reply / Odpowiedz automatyczna
a;

I did experiments with :addresses [*] without any luck.


deliver only gets user and HOME directory form env variables provided
by qmail, so it's unaware of the target email address.

How to fix it ?

I was thinking about deliver extracting target address from
Delivered-To: header added by qmail's preline, or use DTLINE env
variable,
whitch qmail populates with Delivered-To header.