[Dovecot] Allowing clients to test their Sieve scripts
Hi,
One thing which came up repeatedly is that clients using the IMAP server I run (using Dovecot 2.1) wonder whether they broke their Sieve scripts, i.e. it often goes like "I don't know whether I just didn't receive any mail, or whether my filters broke. Can you check the logs?".
I then usually just run the sieve-test binary (part of the Pigeonhole distribution) and send them the output. However, I was wondering - is there maybe a way for them to try it themselves? Like, maybe a tiny web server which just prints a form asking for a mail file and a sieve script, and then it runs sieve-script and prints the output of that? I wonder how other people do that.
-- Frerich Raabe - raabe@froglogic.com www.froglogic.com - Multi-Platform GUI Testing
On Fri, Jun 14, 2013 at 09:40:52AM -0700, Frerich Raabe wrote:
Hi,
One thing which came up repeatedly is that clients using the IMAP server I run (using Dovecot 2.1) wonder whether they broke their Sieve scripts, i.e. it often goes like "I don't know whether I just didn't receive any mail, or whether my filters broke. Can you check the logs?".
I then usually just run the sieve-test binary (part of the Pigeonhole distribution) and send them the output. However, I was wondering - is there maybe a way for them to try it themselves? Like, maybe a tiny web server which just prints a form asking for a mail file and a sieve script, and then it runs sieve-script and prints the output of that? I wonder how other people do that.
-- Frerich Raabe - raabe@froglogic.com www.froglogic.com - Multi-Platform GUI Testing
The ManageSieve plugin in Thunderbird does basic syntax checks, to check if your Sieve script does what it is supposed to to do, there is something like this - https://www.fastmail.fm/docs/sieve/sievetest.php
staticsafe O< ascii ribbon campaign - stop html mail - www.asciiribbon.org Please don't top post. Please don't CC! I'm subscribed to whatever list I just posted on.
staticsafe skrev den 2013-06-14 18:50:
The ManageSieve plugin in Thunderbird does basic syntax checks, to check if your Sieve script does what it is supposed to to do, there is something like this - https://www.fastmail.fm/docs/sieve/sievetest.php
code managesive plugin to make it test scripts before commit it to filesystem
-- senders that put my email into body content will deliver it to my own trashcan, so if you like to get reply, dont do it
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Sat, 15 Jun 2013, Benny Pedersen wrote:
The ManageSieve plugin in Thunderbird does basic syntax checks, to check if your Sieve script does what it is supposed to to do, there is something like this - https://www.fastmail.fm/docs/sieve/sievetest.php
code managesive plugin to make it test scripts before commit it to filesystem
the ManageSieve from Pigeonhole performs syntax checks before committing the script to the filesystem.
Steffen Kaiser -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux)
iQEVAwUBUcFj+V3r2wJMiz2NAQKnsQgAqK2bcnxKzTLGH3SzesBj7irbk7pkDP5t oNOBFucdzqGwJwCUIZhAqf+Uji8NyiUFCLa1wtz9dDIeMX5Ooowp6bH5q3TN2LP/ Jg+43b/nckwXlTcS0xBdOyr6VrYuAWE5cr68tu5RC57u2FLRaSFvQ53n7AIEsRNM ypDwZeCJV+DsMGWp6y3LG5s5b0eMf3zDJtTdaD4Lt0NLU/NMpMvg1olCggUwxf1l Os6JYl2dDLaCfwwpYqM8vT/DRXQ+wtjf08KUIqCku6I2X4n52yhmmfNZ1/5h838/ p0mP2ENmnIuMl7MxE5KTa9M55JdM5+PMbHxQK1f893DJnY8c6yYxTA== =lyOL -----END PGP SIGNATURE-----
On 6/14/2013 12:40 PM, Frerich Raabe wrote:
Hi,
One thing which came up repeatedly is that clients using the IMAP server I run (using Dovecot 2.1) wonder whether they broke their Sieve scripts, i.e. it often goes like "I don't know whether I just didn't receive any mail, or whether my filters broke. Can you check the logs?".
I then usually just run the sieve-test binary (part of the Pigeonhole distribution) and send them the output. However, I was wondering - is there maybe a way for them to try it themselves? Like, maybe a tiny web server which just prints a form asking for a mail file and a sieve script, and then it runs sieve-script and prints the output of that? I wonder how other people do that.
If you have Thunderbird, you may want to have them try out the Sieve plug-in available at http://sieve.mozdev.org/
It auto-compiles and displays errors in the edit window.
The other thing we do is use RoundCube webmail (which has a sieve plugin) and have our users edit their sieve scripts through that instead. It's a form-based rules editor, so a bit harder for them to goof it up.
On 6/14/2013 12:50 PM, Thomas Harold wrote:
On 6/14/2013 12:40 PM, Frerich Raabe wrote:
Hi,
One thing which came up repeatedly is that clients using the IMAP server I run (using Dovecot 2.1) wonder whether they broke their Sieve scripts, i.e. it often goes like "I don't know whether I just didn't receive any mail, or whether my filters broke. Can you check the logs?".
I then usually just run the sieve-test binary (part of the Pigeonhole distribution) and send them the output. However, I was wondering - is there maybe a way for them to try it themselves? Like, maybe a tiny web server which just prints a form asking for a mail file and a sieve script, and then it runs sieve-script and prints the output of that? I wonder how other people do that.
If you have Thunderbird, you may want to have them try out the Sieve plug-in available at http://sieve.mozdev.org/
It auto-compiles and displays errors in the edit window.
The other thing we do is use RoundCube webmail (which has a sieve plugin) and have our users edit their sieve scripts through that instead. It's a form-based rules editor, so a bit harder for them to goof it up.
One of the obvious limitations of using the Thunderbird plug-in, or the web-based tool as cited, is that neither one has any way to know which Sieve modules have been "require"d. Oftentimes fatal errors result from referencing a module that hasn't been required.
It seems as though the only truly reliable method would be to validate the scripts in consideration of your own environment. As you suggested, a simple Web form (ideally, one that requires authentication) into which users can paste scripts and email bodies would do the job. The form inputs can then be passed to sieve-test. Needless to say, the form inputs should be escaped very carefully to prevent arbitrary code from being executed on your system.
Also, I second the Roundcube suggestion If your system supports Roundcube, or if you already use it. The form-based rule editor is much harder to screw-up, as Thomas noted.
Good luck!
-Ben
On 6/14/2013 1:11 PM, Ben Johnson wrote:
One of the obvious limitations of using the Thunderbird plug-in, or the web-based tool as cited, is that neither one has any way to know which Sieve modules have been "require"d. Oftentimes fatal errors result from referencing a module that hasn't been required.
I stand corrected; the Thunderbird plug-in (which I hadn't tried until just now) does actually connect to the server, so it will know which modules are enabled in the configuration.
Neat! Thanks for the tip, Thomas!
-Ben
Hi,
On Jun 14, 2013, at 10:11 AM, Ben Johnson ben@indietorrent.org wrote:
It seems as though the only truly reliable method would be to validate the scripts in consideration of your own environment. As you suggested, a simple Web form (ideally, one that requires authentication) into which users can paste scripts and email bodies would do the job. The form inputs can then be passed to sieve-test. Needless to say, the form inputs should be escaped very carefully to prevent arbitrary code from being executed on your system.
I just re-read your mail, and I must admit I don't understand one part: why would I need authentication? I was thinking of just serving a HTML form via https which expects you to pass a sample mail and a Sieve script, and when submitting that sieve-test is executed and you see the result.
I suppose you were thinking of a different usage, something like - a user logs in with his IMAP credentials, uploads a random mail and then the web server uses the Sieve script which is currently active?
-- Frerich Raabe - raabe@froglogic.com www.froglogic.com - Multi-Platform GUI Testing
On Jun 14, 2013, at 9:50 AM, Thomas Harold thomas-lists@nybeta.com wrote:
On 6/14/2013 12:40 PM, Frerich Raabe wrote:
Hi,
One thing which came up repeatedly is that clients using the IMAP server I run (using Dovecot 2.1) wonder whether they broke their Sieve scripts, i.e. it often goes like "I don't know whether I just didn't receive any mail, or whether my filters broke. Can you check the logs?".
I then usually just run the sieve-test binary (part of the Pigeonhole distribution) and send them the output. However, I was wondering - is there maybe a way for them to try it themselves? Like, maybe a tiny web server which just prints a form asking for a mail file and a sieve script, and then it runs sieve-script and prints the output of that? I wonder how other people do that.
If you have Thunderbird, you may want to have them try out the Sieve plug-in available at http://sieve.mozdev.org/
It auto-compiles and displays errors in the edit window.
The other thing we do is use RoundCube webmail (which has a sieve plugin) and have our users edit their sieve scripts through that instead. It's a form-based rules editor, so a bit harder for them to goof it up.
Thanks for your response (and the others who responded to this thread!). I also have RoundCube setup and indeed many people use that, since you can even switch to an 'Advanced Mode' in the editor in which you just get the raw Sieve script to edit in a text editor.
However, I wasn't primarily thinking of syntax errors but rather logic errors in the script, like "Why did this mail get discarded?" or "Why did this mail end up in folder XYZ?". sieve-test can at least print a nice description (and I seem to recall you could even get some verbose output from it so that you could see all the decisions it took).
-- Frerich Raabe - raabe@froglogic.com www.froglogic.com - Multi-Platform GUI Testing
Thomas Harold skrev den 2013-06-14 18:50:
If you have Thunderbird, you may want to have them try out the Sieve plug-in available at http://sieve.mozdev.org/
yes but it learns fast imho
http://smartsieve.sourceforge.net/ is very good sieve webpanel, just a bit sad its not developped anymore, its a standalone web to edit sieve, i have not yet found any sieve editor that is better, execpt quickrule from myroundcube, sad myroundcube and roundcube cant use same plugins
-- senders that put my email into body content will deliver it to my own trashcan, so if you like to get reply, dont do it
At 9AM -0700 on 14/06/13 you (Frerich Raabe) wrote:
One thing which came up repeatedly is that clients using the IMAP server I run (using Dovecot 2.1) wonder whether they broke their Sieve scripts, i.e. it often goes like "I don't know whether I just didn't receive any mail, or whether my filters broke. Can you check the logs?".
I then usually just run the sieve-test binary (part of the Pigeonhole distribution) and send them the output. However, I was wondering - is there maybe a way for them to try it themselves? Like, maybe a tiny web server which just prints a form asking for a mail file and a sieve script, and then it runs sieve-script and prints the output of that? I wonder how other people do that.
Simply providing some way for them to read the .dovecot.sieve.log file created in their home directory would be a good start. If there are any problems with delivery they will be logged there. You could set up some sort of web access, or even have a daily cronjob to mail the file to the user if it isn't empty.
Ben
On Jun 14, 2013, at 11:07 AM, Ben Morrow ben@morrow.me.uk wrote:
At 9AM -0700 on 14/06/13 you (Frerich Raabe) wrote:
One thing which came up repeatedly is that clients using the IMAP server I run (using Dovecot 2.1) wonder whether they broke their Sieve scripts, i.e. it often goes like "I don't know whether I just didn't receive any mail, or whether my filters broke. Can you check the logs?".
I then usually just run the sieve-test binary (part of the Pigeonhole distribution) and send them the output. However, I was wondering - is there maybe a way for them to try it themselves? Like, maybe a tiny web server which just prints a form asking for a mail file and a sieve script, and then it runs sieve-script and prints the output of that? I wonder how other people do that.
Simply providing some way for them to read the .dovecot.sieve.log file created in their home directory would be a good start. If there are any problems with delivery they will be logged there. You could set up some sort of web access, or even have a daily cronjob to mail the file to the user if it isn't empty.
.dovecot.sieve.log really only contains errors, right? Like, trying to fail mail into folders with invalid characters in them or so? I would need something which explains how a given Sieve script is executed for a given mail.
-- Frerich Raabe - raabe@froglogic.com www.froglogic.com - Multi-Platform GUI Testing
On 6/14/2013 2:11 PM, Frerich Raabe wrote:
On Jun 14, 2013, at 11:07 AM, Ben Morrow ben@morrow.me.uk wrote:
At 9AM -0700 on 14/06/13 you (Frerich Raabe) wrote:
One thing which came up repeatedly is that clients using the IMAP server I run (using Dovecot 2.1) wonder whether they broke their Sieve scripts, i.e. it often goes like "I don't know whether I just didn't receive any mail, or whether my filters broke. Can you check the logs?".
I then usually just run the sieve-test binary (part of the Pigeonhole distribution) and send them the output. However, I was wondering - is there maybe a way for them to try it themselves? Like, maybe a tiny web server which just prints a form asking for a mail file and a sieve script, and then it runs sieve-script and prints the output of that? I wonder how other people do that.
Simply providing some way for them to read the .dovecot.sieve.log file created in their home directory would be a good start. If there are any problems with delivery they will be logged there. You could set up some sort of web access, or even have a daily cronjob to mail the file to the user if it isn't empty.
.dovecot.sieve.log really only contains errors, right? Like, trying to fail mail into folders with invalid characters in them or so? I would need something which explains how a given Sieve script is executed for a given mail.
Sounds as though you've answered your own question. You probably need to build some type of Web interface for sieve-test that is well-secured and well-escaped.
-Ben
On Jun 14, 2013, at 11:42 AM, Ben Johnson ben@indietorrent.org wrote:
Sounds as though you've answered your own question. You probably need to build some type of Web interface for sieve-test that is well-secured and well-escaped.
Looks like it. Kinda surprising that nobody else needed this, though - I wouldn't have thought it's than uncommon a requirement. :-)
OTOH, that's some incentive for me to write something which is reasonably reusable as opposed to being specific to my particular setup.
-- Frerich Raabe - raabe@froglogic.com www.froglogic.com - Multi-Platform GUI Testing
On 6/14/2013 3:06 PM, Frerich Raabe wrote:
On Jun 14, 2013, at 11:42 AM, Ben Johnson ben@indietorrent.org wrote:
Sounds as though you've answered your own question. You probably need to build some type of Web interface for sieve-test that is well-secured and well-escaped.
Looks like it. Kinda surprising that nobody else needed this, though - I wouldn't have thought it's than uncommon a requirement. :-)
OTOH, that's some incentive for me to write something which is reasonably reusable as opposed to being specific to my particular setup.
Please do keep us posted if you decide to pursue the endeavor. I've needed this, too, but it never bubbled up to the top of the priorities list.
The complexities associated with authentication will be the most difficult part (at least if you want to build something reusable).
Ideally, authentication could be handled outside of the application/script, e.g., by the Web-server. That would save you a lot of coding and make the application far more portable.
Maybe I'll take a stab at this in PHP and share the results.
-Ben
On 14.6.2013, at 22.22, Ben Johnson ben@indietorrent.org wrote:
The complexities associated with authentication will be the most difficult part (at least if you want to build something reusable).
Dovecot has a pretty easily usable auth server that talks pretty simple authentication protocol, and can be also configured to be available via TCP. http://wiki2.dovecot.org/Design/AuthProtocol
Also an even simpler way: Just run "doveadm auth test username password" and see if it returns 0.
At 10PM +0300 on 14/06/13 you (Timo Sirainen) wrote:
On 14.6.2013, at 22.22, Ben Johnson ben@indietorrent.org wrote:
The complexities associated with authentication will be the most difficult part (at least if you want to build something reusable).
Dovecot has a pretty easily usable auth server that talks pretty simple authentication protocol, and can be also configured to be available via TCP. http://wiki2.dovecot.org/Design/AuthProtocol
See also the Perl module Authen::SASL::Authd, which will authenticate against dovecot-auth (only with PLAIN, unfortunately, but unless you're willing to put in a lot of effort most forms of web auth come out equivalent to PLAIN).
Ben
On 6/14/2013 4:57 PM, Ben Morrow wrote:
At 10PM +0300 on 14/06/13 you (Timo Sirainen) wrote:
On 14.6.2013, at 22.22, Ben Johnson ben@indietorrent.org wrote:
The complexities associated with authentication will be the most difficult part (at least if you want to build something reusable).
Dovecot has a pretty easily usable auth server that talks pretty simple authentication protocol, and can be also configured to be available via TCP. http://wiki2.dovecot.org/Design/AuthProtocol
See also the Perl module Authen::SASL::Authd, which will authenticate against dovecot-auth (only with PLAIN, unfortunately, but unless you're willing to put in a lot of effort most forms of web auth come out equivalent to PLAIN).
Ben
Thanks Timo and Ben for the authentication suggestions. I'll look into those further. It seems clear that whatever method is used, it has to transmit the user's credentials securely. Plaintext authentication is not an option in my environment.
In the meantime, here's a very rough-cut of a PHP script that accepts a Sieve script and an email body, and prints-out the "sieve-test" results.
This works fine on my server. Next week, I'll add authentication.
Would love to know if this works for you, too, Frerich.
Have a nice weekend,
-Ben
At 5PM -0400 on 14/06/13 you (Ben Johnson) wrote:
Thanks Timo and Ben for the authentication suggestions. I'll look into those further. It seems clear that whatever method is used, it has to transmit the user's credentials securely. Plaintext authentication is not an option in my environment.
Thinking about this further, the simplest option is probably just to authenticate against the IMAP server, using TLS. I'm sure PHP (if you must use PHP) has an IMAP library capable of doing that straightforwardly.
Ben
On Jun 14, 2013, at 2:21 PM, Ben Johnson ben@indietorrent.org wrote:
In the meantime, here's a very rough-cut of a PHP script that accepts a Sieve script and an email body, and prints-out the "sieve-test" results.
This works fine on my server. Next week, I'll add authentication.
Would love to know if this works for you, too, Frerich.
Nice, judging from the source code it looks very much like what I was thinking of! However, as it happens my IMAP server is *very* minimalistic (it runs FreeBSD and has just 9 software packages installed, the bare minimum I needed for Dovecot and Exim - the only luxury I have is vim :]).
I'm not sure how much stuff PHP pulls in, but I was thinking of writing a tiny Python script (since that is included in FreeBSD by default) which implements a simple HTTP server, I did that once and it was fairly straightforward).
-- Frerich Raabe - raabe@froglogic.com www.froglogic.com - Multi-Platform GUI Testing
At 6PM -0700 on 14/06/13 you (Frerich Raabe) wrote:
Nice, judging from the source code it looks very much like what I was thinking of! However, as it happens my IMAP server is *very* minimalistic (it runs FreeBSD and has just 9 software packages installed, the bare minimum I needed for Dovecot and Exim - the only luxury I have is vim :]).
I'm not sure how much stuff PHP pulls in, but I was thinking of writing a tiny Python script (since that is included in FreeBSD by default)
Um, no it isn't. Perl and Tcl were in base for a while, though they aren't any more, but Python has never been. Probably you pulled it in by mistake when you installed vim (try the vim-lite port instead).
Ben
On Jun 14, 2013, at 7:05 PM, Ben Morrow ben@morrow.me.uk wrote:
At 6PM -0700 on 14/06/13 you (Frerich Raabe) wrote:
Nice, judging from the source code it looks very much like what I was thinking of! However, as it happens my IMAP server is *very* minimalistic (it runs FreeBSD and has just 9 software packages installed, the bare minimum I needed for Dovecot and Exim - the only luxury I have is vim :]).
I'm not sure how much stuff PHP pulls in, but I was thinking of writing a tiny Python script (since that is included in FreeBSD by default)
Um, no it isn't. Perl and Tcl were in base for a while, though they aren't any more, but Python has never been. Probably you pulled it in by mistake when you installed vim (try the vim-lite port instead).
I stand corrected; I do have the vim-lite port installed already, but I just didn't realize that I don't have Python yet - I though it's there but it never was. :-)
-- Frerich Raabe - raabe@froglogic.com www.froglogic.com - Multi-Platform GUI Testing
On 6/14/2013 2:07 PM, Ben Morrow wrote:
Simply providing some way for them to read the .dovecot.sieve.log file created in their home directory would be a good start. If there are any problems with delivery they will be logged there. You could set up some sort of web access, or even have a daily cronjob to mail the file to the user if it isn't empty.
What about having sieve add a x-rules-fired header and adding that to the message?
On 6/14/2013 3:28 PM, Thomas Harold wrote:
On 6/14/2013 2:07 PM, Ben Morrow wrote:
Simply providing some way for them to read the .dovecot.sieve.log file created in their home directory would be a good start. If there are any problems with delivery they will be logged there. You could set up some sort of web access, or even have a daily cronjob to mail the file to the user if it isn't empty.
What about having sieve add a x-rules-fired header and adding that to the message?
What happens when the message is never delivered for whatever reason? That's the only problem I see with that approach.
-Ben
Ben Morrow skrev den 2013-06-14 20:07:
Simply providing some way for them to read the .dovecot.sieve.log file created in their home directory would be a good start. If there are any problems with delivery they will be logged there. You could set up some sort of web access, or even have a daily cronjob to mail the file to the user if it isn't empty.
can sievec make invalid script compile fine ?
dovecot does not use non compiled scripts
if it compiles its valid
if i am inccorect i like to learn more :)
cron is always to late
-- senders that put my email into body content will deliver it to my own trashcan, so if you like to get reply, dont do it
Frerich Raabe skrev den 2013-06-14 18:40:
One thing which came up repeatedly is that clients using the IMAP server I run (using Dovecot 2.1) wonder whether they broke their Sieve scripts, i.e. it often goes like "I don't know whether I just didn't receive any mail, or whether my filters broke. Can you check the logs?".
+1
I then usually just run the sieve-test binary (part of the Pigeonhole distribution) and send them the output. However, I was wondering - is there maybe a way for them to try it themselves? Like, maybe a tiny web server which just prints a form asking for a mail file and a sieve script, and then it runs sieve-script and prints the output of that? I wonder how other people do that.
is dovecot not just ignore sieve scripts that is invalid ?
if so why not let it until scripts writer have access to sieve-test in localhost, it could not being test on any orher webpage since sieve is basicly uniq pr host that support it
and i think managesieve should test scripts before commit it to filesystem
maybe it will change, but i dopt
-- senders that put my email into body content will deliver it to my own trashcan, so if you like to get reply, dont do it
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Fri, 14 Jun 2013, Frerich Raabe wrote:
One thing which came up repeatedly is that clients using the IMAP server I run (using Dovecot 2.1) wonder whether they broke their Sieve scripts, i.e. it often goes like "I don't know whether I just didn't receive any mail, or whether my filters broke. Can you check the logs?".
I then usually just run the sieve-test binary (part of the Pigeonhole distribution) and send them the output. However, I was wondering - is there maybe a way for them to try it themselves? Like, maybe a tiny web server which just prints a form asking for a mail file and a sieve script, and then it runs sieve-script and prints the output of that? I wonder how other people do that.
you are not referring to syntax errors, do you?
Otherwise, this seems to be a nice idea to let users actually _test_ their scripts. However, I wonder how educated they are, in order to paste in a correct "mail file" incl. header and the like.
Steffen Kaiser -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux)
iQEVAwUBUcFlBF3r2wJMiz2NAQIWkQf5AS1g63bj00I8nTrt9adYSgkRCXmRVlNi M2TjBAGcRZJ5gpL08dyrGpymOydrkcJdsKjgythloGxzezfPStYCg71FLjfO3dLx 6Y1SDue+Dfn0AS49Zyh1zm6KXy56JFgQSopV4zUum1y9KH7ncskzBlBZobYeTXlN rQXQ1Bim/m1368sCzqFwfD2v0CrFnNDe4YGaydbNIBQrC0WDPGQBWEiIxv4Ovudg Zbsk9NSIWDr/nu2MfvE9m1dhXDX9YxeVZWlYoira//PgQkO81P9zFfJGCH8y1qtl c+Hr1165e8sXunSnfkWRiZP3igoefWTgILZnBVSM9VpL3F1NtKi2uQ== =IhRa -----END PGP SIGNATURE-----
On Jun 19, 2013, at 1:00 AM, Steffen Kaiser skdovecot@smail.inf.fh-brs.de wrote:
On Fri, 14 Jun 2013, Frerich Raabe wrote:
I then usually just run the sieve-test binary (part of the Pigeonhole distribution) and send them the output. However, I was wondering - is there maybe a way for them to try it themselves? Like, maybe a tiny web server which just prints a form asking for a mail file and a sieve script, and then it runs sieve-script and prints the output of that? I wonder how other people do that.
you are not referring to syntax errors, do you?
Otherwise, this seems to be a nice idea to let users actually _test_ their scripts. However, I wonder how educated they are, in order to paste in a correct "mail file" incl. header and the like.
Better would be to let them submit a message from a folder, or all messages in a folder. I.e., "run Sieve on folder 'TestSieve'", then users can just drag messages there and test it (or, if I had that functionality, copy them).
Just a thought.
Sean
participants (9)
-
Ben Johnson
-
Ben Morrow
-
Benny Pedersen
-
Frerich Raabe
-
Sean Kamath
-
staticsafe
-
Steffen Kaiser
-
Thomas Harold
-
Timo Sirainen