List Info

Thread: Re: sieve script error message




Re: sieve script error message
country flaguser name
United States
2007-06-25 12:59:39
Messages from this subsystems are directly inserted,
bypassing all other
checks. I'd have to do a little bit of reading on
constructing a new
message with GMime, but it should be pretty easy to do.

On Mon, Jun 25, 2007, Jesse Norell <jessekci.net> said:

> On such a sieve error message, would it be reasonably
doable to add the
> original message as an attachement?  (And would that
just trigger a
> loop?  Ie. do sieve filters apply to headers of mime
parts or just the
> outer message?)
> 
> 
> On Mon, 2007-06-25 at 17:09 +0000, Aaron Stone wrote:
>> On the issue of what to do with an email that
cannot be parsed by
>> libSieve, I'm not sure what the best behavior is.
On the one hand, seeing
>> the email show up in your Inbox might lead you to
think that the Sieve
>> script was broken - so the error message is
intended to clarify what
>> happened. On the other hand, it's annoying and the
messages are confusing.
>> 
>> I like the idea of adding a dbmail.conf option to
turn the messages off in
>> the case of a bum email, and only alert if the
script itself is broken
>> (which can happen, if, say, you wrote a web sieve
client that inserts
>> directly into the dbmail_sievescripts table,
bypassing the checks in
>> ManageSieve and dbmail-sievecmd).
>> 
>> I also like the idea of adding some vendor
extensions, so that we can give
>> users some mechanisms to configure their DBMail
Sieve environment. Top of
>> the script might have something like:
>> 
>>     require ["vnd.dbmail"];
>>     vnd_dbmail :foo "bar";
>>     ...
>> 
>> This would hamper script portability a little bit,
but so long as the
>> vendor specific stuff is well marked as such, it
should be fine.
>> 
>> Aaron
>> 
>> On Mon, Jun 25, 2007, Jesse Norell <jessekci.net> said:
>> 
>> > After a bit more digging around, I found an
old libdbmail sitting around
>> > in /usr/local/lib ... so I'm wondering if some
of the problems I've seen
>> > were from that (I'll hope/presume they maybe
were).
>> > 
>> > As to the sieve error, it says
"unexpected '.'"; I have one rule that
>> > potentially might be related:
>> > 
>> >   header :value "ge" :comparator
"i;ascii-numeric" "X-Spam-Score"
"9"
>> > 
>> > I tested and both ".5" and
"20.5" perform as expected there .. perhaps a
>> > spam with a bogus header came through?  I'll
watch for more such
>> > messages and try to correlate them.  If that's
the case (ie. a bogus
>> > header came through), is generating an error
with INBOX delivery the
>> > appropriate behavior?  It arguably could be. 
It also gives spammers a
>> > nice way to bypass my above check to discard
high-scoring spam.  Perhaps
>> > a runtime error should be treated as a false
(no match) instead, and
>> > processing proceed as normal?  Or maybe a knob
to turn on/off runtime
>> > sieve errors?
>> > 
>> > Of course this is just guessing, too, till I
can correlate one of those
>> > generated sieve errors with the actual message
which produced it.
>> > 
>> > Thanks,
>> > Jesse
>> > 
>> > 
>> > On Mon, 2007-06-25 at 09:14 -0600, Jesse
Norell wrote:
>> >> On Fri, 2007-06-22 at 16:44 +0000, Aaron
Stone wrote:
>> >> > On Fri, Jun 22, 2007, Jesse Norell
<jessekci.net> said:
>> >> > 
>> >> > > Hello,
>> >> > > 
>> >> > >   I apparently just deleted the
error email I wanted to ask about, but
>> >> > > I'll provide another if I get
one soon.  Anyways, after making a few
>> >> > > changes to my sieve filters
yesterday, I've now gotten 3 instances of an
>> >> > > error report email showing up in
my INBOX from the sieve system.  It has
>> >> > > a diagnostic message (eg.
something like "next atom expecting ':'" or
>> >> > > along those lines), but there
are no line numbers or context from the
>> >> > > email, so I have no idea where I
should be looking for the problem.
>> >> > > 
>> >> > >   Also, usually when I've made a
mistake in a sieve script,
>> >> > > dbmail-sievecmd doesn't let me
insert it.  Even yesterday when I made
>> >> > > changes I had to fix a couple
things before I could insert it ... and
>> >> > > when it let me, I assumed it was
syntactically valid.  Maybe it is...
>> >> > > can there be effectively a
"run time" error in a sieve script?  Anyways,
>> >> > > if better checking could be done
at insert time, that'd definitely be a
>> >> > > good thing.
>> >> > 
>> >> > Run time errors are possible, and the
error notifications are
>> >> > unfortunately not particularly
helpful except to let you know that
>> >> > _something_ happened.
>> >> > 
>> >> > >   As to this email itself, I
think the header cache stuff isn't done
>> >> > > right.  I can view message
source and see a few headers, but in my email
>> >> > > client (evolution, using imap),
it showed no sender, subject or date ...
>> >> > > which I think probably all comes
from the header cache?
>> >> > 
>> >> > Yes. If these are newly received
messages, then something is probably
>> >> > wrong with your database. If they're
old messages, you might just need to
>> >> > flush the cache tables and reload
them with dbmail-util. I've been
>> >> > thinking about adding a flag that
does this, rather than a manual flush +
>> >> > automated reload.
>> >> 
>> >>   I'm sure they're newly received (they
have to be, don't they?  dbmail
>> >> doesn't have any ability to retroactively
apply sieve filters to
>> >> existing messages, does it?).
>> >> 
>> >> > >   This is dbmail 2.2.5, with
libsieve 2.2.5.  I don't have a copy of my
>> >> > > sieve script as it was before I
changed it to diff against, but I can
>> >> > > provide a copy of the current
one and point out the places that changed
>> >> > > if desired.  It all looks
correct, and indeed passes the parser at
>> >> > > insert time.  I'll also try to
turn up debugging for sieve to get some
>> >> > > useful logs.
>> >> 
>> >>   I got another 4 of these this weekend,
so I'll see about digging out
>> >> the degbug messages and other info.  Again
the "From", "Subject" and
>> >> "Date" shown in my mail program
were empty, though they do exist in the
>> >> actual message when I view message
source:
>> >> 
>> >> 
>> >> From: postmasterdigitalcoven.com
>> >> Subject: Sieve script run error
>> >> To: jesse
>> >> Message-Id: <1182608217l.13986l.0l(none)>
>> >> MIME-Version: 1.0
>> >> Content-Type: text/plain; charset=utf-8
>> >> Content-Transfer-Encoding: 7bit
>> >> X-DBMail-PhysMessage-ID: 1383963
>> >> X-Evolution-Source: imap://jessemail.dsp-services.com/
>> >> Date: Mon, 25 Jun 2007 08:25:21 -0600
>> >> 
>> >> Your Sieve script [standard] failed to run
correctly.
>> >> Messages will be delivered to your INBOX
for now.
>> >> The error message is:
>> >> syntax error, unexpected '.', expecting
ATOM or QUOTE or ':' or '<'
>> >> 
>> >> 
>> >>   The timestamp here is misleading ..
every time I view message source
>> >> it changes to the current time .. so I
don't know exactly when they
>> >> actually took place.  If I look at some of
the headers in the database,
>> >> they appear to be there:
>> >> 
>> >> mysql> select * from dbmail_fromfield
where physmessage_id = 1383963;
>> >>
+----------------+--------+----------+----------------------
-------+
>> >> | physmessage_id | id     | fromname |
fromaddr                    |
>> >>
+----------------+--------+----------+----------------------
-------+
>> >> |        1383963 | 570447 |          |
postmasterdigitalcoven.com |
>> >>
+----------------+--------+----------+----------------------
-------+
>> >> 
>> >> 
>> >> mysql> select * from dbmail_tofield
where physmessage_id = 1383963;
>> >>
+----------------+--------+--------+--------+
>> >> | physmessage_id | id     | toname |
toaddr |
>> >>
+----------------+--------+--------+--------+
>> >> |        1383963 | 660173 |        | jesse
 |
>> >>
+----------------+--------+--------+--------+
>> >> 
>> >> 
>> >> mysql> select * from dbmail_datefield
where physmessage_id = 1383963;
>> >>
+----------------+--------+---------------------+
>> >> | physmessage_id | id     | datefield     
     |
>> >>
+----------------+--------+---------------------+
>> >> |        1383963 | 570355 | 1970-01-01
00:00:00 |
>> >>
+----------------+--------+---------------------+
>> >> 
>> >> 
>> >> Note the Date is bogus .. maybe should
default to NOW() instead of the
>> >> epoch?
>> >> 
>> >> select count(*) from dbmail_datefield
where datefield = '1970-01-01
>> >> 00:00:00';
>> >> +----------+
>> >> | count(*) |
>> >> +----------+
>> >> |       49 |
>> >> +----------+
>> >> 
>> >> And/Or maybe it's the fault of the part
injecting the message, as it
>> >> looks to be missing the Date:
>> >> 
>> >> 
>> >> mysql> select messageblk from
dbmail_messageblks where physmessage_id =
>> >> 1383963 limit 1;
>> >> 
>> >> From: postmasterdigitalcoven.com
>> >> Subject: Sieve script run error
>> >> To: jesse
>> >> Message-Id: <1182608217l.13986l.0l(none)>
>> >> MIME-Version: 1.0
>> >> Content-Type: text/plain; charset=utf-8
>> >> Content-Transfer-Encoding: 7bit
>> >> 
>> >> 
>> >> 
>> >>   Isn't dbmail.err supposed to be
timestamped now?  I remember an update
>> >> by Paul that said it was syntactically
identical to syslog... some
>> >> messages seem to be, but others aren't
(eg. "(process:12837):
>> >> gmime-CRITICAL **: parse_rfc822_date:
assertion `tokens != NULL'
>> >> failed").
>> >> 
>> >>   Still working on tracking more debugging
info down...  I'll go back
>> >> and work on my script some more, and see
if I can find the error.  But
>> >> A) can the sieve error message be made
more useful (ie. a line number or
>> >> a little context info or something)?  and
B) do the sieve runtime errors
>> >> work correctly (wrt header data) for
anyone else?  This database was
>> >> migrated manually, it's possible something
isn't exactly right (but did
>> >> seem to be working till my last script
edits, so I suspect it's ok).
>> >> 
>> >> Thanks,
>> >> Jesse
>> >> 
>> >> 
>> > -- 
>> > Jesse Norell
>> > Kentec Communications, Inc.
>> > jessekci.net
>> >
_______________________________________________
>> > DBmail mailing list
>> > DBmaildbmail.org
>> > htt
ps://mailman.fastxs.nl/mailman/listinfo/dbmail
>> > 
>> 
> -- 
> Jesse Norell
> Kentec Communications, Inc.
> jessekci.net
> _______________________________________________
> DBmail mailing list
> DBmaildbmail.org
> htt
ps://mailman.fastxs.nl/mailman/listinfo/dbmail
> 

-- 



_______________________________________________
DBmail mailing list
DBmaildbmail.org
htt
ps://mailman.fastxs.nl/mailman/listinfo/dbmail

Re: sieve script error message
country flaguser name
Netherlands
2007-06-25 14:46:05
Aaron Stone wrote:
> Messages from this subsystems are directly inserted,
bypassing all other
> checks. I'd have to do a little bit of reading on
constructing a new
> message with GMime, but it should be pretty easy to
do.

It is.

GMimeMultipart would probably be a good starting point:

http://spruce.sourceforge.net/gmime/doc/gmime-
gmime-multipart.html



-- 
 
____________________________________________________________
____
  Paul Stevens                                      paul at
nfg.nl
  NET FACILITIES GROUP                     GPG/PGP:
1024D/11F8CD31
  The Netherlands________________________________http://www.nfg.nl
_______________________________________________
DBmail mailing list
DBmaildbmail.org
htt
ps://mailman.fastxs.nl/mailman/listinfo/dbmail

[1-2]

about | contact  Other archives ( Real Estate discussion Medical topics )