Subject: Updated regex and subaddress drafts

From: Ken Murchison <[email-masked]>
Date: Thu, 30 Aug 2001 10:51:43 -0400

I just submitted updates of the following drafts:

http://www.oceana.com/ftp/drafts/draft-murchison-sieve-regex-04.txt
http://www.oceana.com/ftp/drafts/draft-murchison-sieve-subaddress-03.txt

The changes include suggestions from the list and other editorial
stuff.  If I don't get any negative feedback by the time these drafts
expire, I'll probably go ahead and ask for a last call.

Ken
-- 
Kenneth Murchison     Oceana Matrix Ltd.
Software Engineer     21 Princeton Place
716-662-8973 x26      Orchard Park, NY 14127
--PGP Public Key--    http://www.oceana.com/~ken/ksm.pgp

---

From: Simon Josefsson <[email-masked]>
Date: Fri, 31 Aug 2001 15:42:48 +0200 (CEST)

> expire, I'll probably go ahead and ask for a last call.

A comment to both of these drafts:

Back references!

If I receive mail to [email-masked], I may want to file it
into INBOX.lists.foobar.  I don't want explicit rules for each and every
foobar.

Same thing goes for regexp, I want to write a regexp that match a header
"Mailing-Id: (.*)" and file that into "INBOX.lists.\1"

Perhaps most clients wont have GUIs capable of making use of this though,
and that this idea cost too much in terms of complexity and security, so
it might not be worth it.  Just an idea.

(The added complexity would be that `fileinto' need to be changed, I
think.)

(One obvious security consideration with the scheme is that someone is
able to spam you with mail that create lots of mailboxes.)

---

From: Phil Pennock <[email-masked]>
Date: Fri, 31 Aug 2001 16:58:48 +0200

> able to spam you with mail that create lots of mailboxes.)

(my head's a bit muggy at the moment and I'm not thinking clearly, so if
 this is really stupid, please say so gently)

How feasible is it to have an :if-exists modifier-thingy for fileinto?
And a matching :even-if-doesn't-exist modifier?  And to make the
_default_ change if the filename is made using a backreference?

Desired behaviour, regardless of the above, is to make it easy to have a
fileinto-if-already-exists rule, especially for when the data comes in
over the network.  I also don't recall having seen anything in the
drafts on what the Sieve localpart literally consists of when the LHS of
the address is in double-quotes with non-atom characters in it.  Is the
Sieve view always the literal string of the LHS?  What mappings to
file-system level character restrictions should be considered when using
the proposed backreferences?  quoted-pair to character translations?
-- 
Phil Pennock                        <[email-masked]> <[email-masked]>
Demon Internet Nederland -- Network Operations Centre -- Systems Administrator
Libertes philosophica.
NL Sales: +31 20 422 20 00                          NL Support: 0800 33 6666 8

---

From: Ken Murchison <[email-masked]>
Date: Fri, 31 Aug 2001 12:11:01 -0400

> A comment to both of these drafts:

I specifically left out back references because Sieve does not have the
concept of variables.

Ken

Date: Fri, 31 Aug 2001 12:11:01 -0400
From: Ken Murchison <[email-masked]>
Organization: Oceana Matrix Ltd.
To: Simon Josefsson <[email-masked]>
CC: [email-masked]
Subject: Re: Updated regex and subaddress drafts
Sender: [email-masked]

> A comment to both of these drafts:

I specifically left out back references because Sieve does not have the
concept of variables.

Ken

Date: Fri, 31 Aug 2001 16:58:48 +0200
From: Phil Pennock <[email-masked]>
To: [email-masked]
Subject: Re: Updated regex and subaddress drafts
Mail-Followup-To: Phil Pennock <[email-masked]>, [email-masked]
Organisation: Demon Internet Netherlands
Sender: [email-masked]

Date: Fri, 31 Aug 2001 15:42:48 +0200 (CEST)
From: Simon Josefsson <[email-masked]>
To: Ken Murchison <[email-masked]>
cc: <[email-masked]>
Subject: Re: Updated regex and subaddress drafts
Sender: [email-masked]

Back references!

Date: Thu, 30 Aug 2001 10:51:43 -0400
From: Ken Murchison <[email-masked]>
Organization: Oceana Matrix Ltd.
To: [email-masked]
Subject: Updated regex and subaddress drafts
Sender: [email-masked]

Ken

Date: Fri, 10 Aug 2001 21:04:31 -0400
From: David Roxe <[email-masked]>
To: Nigel Swinson <[email-masked]>
CC: [email-masked]
Subject: Re: How about an "email" action extension instead of a "vacation"  extension
Sender: [email-masked]

> Nigel Swinson wrote:
> 
> Slightly extending the vacation extension idea, what would people
> think about and "email" action extension, that would send an email to
> the specified recipients, and possibly the sender of the email.  It
> might look something along the lines of:

How about using that notification extension proposed on the list
earlier?
Here is the header information:

Subject: 
        Notify extension to Sieve
   Date: 
        Tue, 03 Jul 2001 14:47:34 -0400
   From: 
        Wolfgang Segmuller <[email-masked]>
     To: 
        [email-masked]

That is, a Sieve action could be, "notify this list of recipients,
via email, with a message having these particular contents."

From: "Nigel Swinson" <[email-masked]>
To: <[email-masked]>
Subject: How about an "email" action extension instead of a "vacation" extension
Date: Sat, 11 Aug 2001 00:51:34 +0100
Sender: [email-masked]

This is a multi-part message in MIME format.

------=_NextPart_000_0059_01C121FF.C4CC1250
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Slightly extending the vacation extension idea, what would people think =
about and "email" action extension, that would send an email to the =
specified recipients, and possibly the sender of the email.  It might =
look something along the lines of:

Syntax:   email [":replytosender"] [":days" number] <":recipient" =
recipients: string-list> <":subject" subject: string> <body: string>

Where :replytosender would include the senders email address in the =
recipient list.  :recipient would allow you to add additional recipients =
for the message, :subject and body are obvious, and the email would be =
from the owner of script.  :days if specified would specify the minimum =
interval required between sending out the same message to the sender =
much in the same way as the vacation extension defined.

Possible uses could be as a vacation autoreply filter:

    require "email";=20

    if header :contains "from" "[email-masked]" {=20
         redirect "[email-masked]";
    } else {
         email :replytosender :days 10 :subject "I'm on holiday :o)"=20
                   "Sorry, I'm away for 10 days, I'll read your message =
when I get around to it.";
    }

A virus detector:

    require "email";

    if header :contains "I love you" {
        reject "The message contains the I love you virus";
        email :replytosender :recipient "[email-masked]" =
:subject "Your computer has been infected with a virus"=20
            "Your computer at some time has been infected with the \"I =
love you virus\" and has recently send an email to our mail server.      =
                Please check out www.F-Secure.com for details of how to =
clean your system";
        stop;
    }

I suppose "email" would not cancel the implicit keep action. and could =
be used in conjunction with reject, discard, fileinto and keep.

Comments?

Nigel

------=_NextPart_000_0059_01C121FF.C4CC1250
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=3D"text/html; charset=3Diso-8859-1" =
http-equiv=3DContent-Type>
<META content=3D"MSHTML 5.00.2314.1000" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2>Slightly extending the vacation extension idea, what =
would=20
people think about and "email" action extension, that would send an =
email to the=20
specified recipients, and possibly the sender of the email.&nbsp; It =
might look=20
something along the lines of:</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV>
<DIV><FONT size=3D2>Syntax:&nbsp;&nbsp;&nbsp;email [":replytosender"] =
[":days"=20
number] &lt;":recipient" recipients: string-list&gt;&nbsp;&lt;":subject" =

subject: string&gt; &lt;body: string&gt;</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2>Where :replytosender would include the senders email =
address=20
in the recipient list.&nbsp; :recipient would allow you to add =
additional=20
recipients for the message, :subject and body are obvious, and the email =
would=20
be from the owner of script.&nbsp; :days if specified would specify the =
minimum=20
interval required between sending out the same message to the sender =
much in the=20
same way as the vacation extension defined.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2>Possible uses could be as a vacation autoreply=20
filter:</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2>&nbsp;&nbsp;&nbsp; require =
"email";&nbsp;</FONT></DIV>
<DIV><BR><FONT size=3D2>&nbsp;&nbsp;&nbsp; if header :contains "from"=20
"[email-masked]" { </FONT></DIV>
<DIV><FONT size=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
redirect "<A=20
href=3D"mailto:[email-masked]">[email-masked]</A>";<FONT=20
face=3DArial></FONT></FONT></DIV>
<DIV><FONT face=3DArial><FONT size=3D2>&nbsp;&nbsp;&nbsp; } else=20
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;email =
:replytosender=20
:days 10 :subject "I'm on holiday :o)" </FONT></FONT></DIV>
<DIV><FONT face=3DArial><FONT=20
size=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
"Sorry, I'm away for 10 days, I'll read your message when I get around =
to=20
it.";<BR>&nbsp;&nbsp;&nbsp;&nbsp;}</FONT></DIV></FONT>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2>A virus detector:</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2>&nbsp;&nbsp;&nbsp; require "email";</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2>&nbsp;&nbsp;&nbsp; if header :contains "I love you"=20
{</FONT></DIV>
<DIV><FONT size=3D2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; reject "The =
message=20
contains the I love you virus";</FONT></DIV>
<DIV><FONT size=3D2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; email =
:replytosender=20
:recipient "<A=20
href=3D"mailto:[email-masked]">[email-masked]</A>" =
:subject=20
"Your computer has been infected with a virus" </FONT></DIV>
<DIV><FONT size=3D2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp; "Your=20
computer at some time has been infected with the \"I love you virus\" =
and has=20
recently send an email to our mail server.&nbsp; &nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;=20
Please check out <A =
href=3D"http://www.F-Secure.com">www.F-Secure.com</A> for=20
details of how to clean your system";</FONT></DIV>
<DIV><FONT size=3D2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
stop;</FONT></DIV>
<DIV><FONT size=3D2>&nbsp;&nbsp;&nbsp; }</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2>I suppose "email" would not cancel the implicit keep =
action.=20
and could be used in conjunction with reject, discard, fileinto and=20
keep.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2>Comments?</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2>Nigel</FONT></DIV></DIV></BODY></HTML>

------=_NextPart_000_0059_01C121FF.C4CC1250--