著者: Michael Haardt 日付: To: exim-users 題目: Re: [exim] possible bug: sieve filter not working when router uses
data instead of file
> 2004-08-23 22:04:20 1BzL3D-0004XA-4W == save inbox <localpart@???> > R=xams_forward T=xams_address_file defer (-21): appendfile: file or
> directory name "inbox" is not absolute
Your Sieve filter should never try to fileinto "inbox". Could it
be that you passed it something via data that looked like a Sieve
filter but had a syntax error? In that case, an implicit keep is
done, which is equivalent to: fileinto "inbox";
> Also I don't know how to nicely write sieve scripts for maildir - using
> the full path to the maildir is quite clumsy and also not obvious to
> users from outside.
Indeed.
> all sieve examples i've found so far seem to be for mbox or cyrus-imap
> as mailstore and they use fileinto "inbox.subdir"; - Is there something
> similar available for maildir? Any example scripts for sieve+maildir out
> there?
Try something like this in your transport:
directory = $home/${sg{$address_file}{^inbox}{}}
That way you would deliver "inbox" to $home and "inbox.Folder" to
$home/.Folder, which is common on maildir systems. Essentially you
convert the relative path an absolute path, which also fixes the
problem above.
I am sorry for not yet giving a way to get Sieve error messages
other than by debug logs. It's on the TODO list, though.