ph10 2007/03/21 15:15:12 GMT
Modified files:
exim-doc/doc-txt ChangeLog README.SIEVE
exim-src/src sieve.c
Log:
Patch from the Sieve maintainer.
Revision Changes Path
1.498 +2 -0 exim/exim-doc/doc-txt/ChangeLog
1.11 +27 -5 exim/exim-doc/doc-txt/README.SIEVE
1.26 +16 -0 exim/exim-src/src/sieve.c
Index: ChangeLog
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
retrieving revision 1.497
retrieving revision 1.498
diff -u -r1.497 -r1.498
--- ChangeLog 21 Mar 2007 15:10:39 -0000 1.497
+++ ChangeLog 21 Mar 2007 15:15:12 -0000 1.498
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.497 2007/03/21 15:10:39 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.498 2007/03/21 15:15:12 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -189,6 +189,8 @@
RCPT commands is included in the rejection of the DATA command. This is
intended to be helpful for MUAs that show only the final error to their
users.
+
+PH/42 Another patch from the Sieve maintainer.
Exim version 4.66
Index: README.SIEVE
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/README.SIEVE,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- README.SIEVE 25 Apr 2006 10:44:57 -0000 1.10
+++ README.SIEVE 21 Mar 2007 15:15:12 -0000 1.11
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/README.SIEVE,v 1.10 2006/04/25 10:44:57 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/README.SIEVE,v 1.11 2007/03/21 15:15:12 ph10 Exp $
Notes on the Sieve implementation for Exim
@@ -21,11 +21,12 @@
Exim Implementation
The Exim Sieve implementation offers the core as defined by
-draft-ietf-sieve-3028bis-05.txt (next version of RFC 3028 that fixes
-specification mistakes), the "envelope" test (3028bis), the "fileinto"
-action (3028bis), the "copy" action (RFC 3894), the "vacation" action
-(draft-ietf-sieve-vacation-05.txt) and the "i;ascii-numeric" comparator
-extension (RFC 2244).
+draft-ietf-sieve-3028bis-10.txt (next version of RFC 3028 that
+fixes specification mistakes), the "envelope" test (3028bis), the
+"fileinto" action (3028bis), the "copy" parameter (RFC 3894), the
+"vacation" action (draft-ietf-sieve-vacation-06), the "notify" action
+(draft-ietf-sieve-notify-06.), the "i;ascii-numeric" comparator (RFC 2244)
+and the subaddress parameter (draft-ietf-sieve-rfc3598bis-05).
The Sieve filter is integrated in Exim and works very similar to the
Exim filter: Sieve scripts are recognized by the first line containing
@@ -361,3 +362,24 @@
The draft requires that each implementation offers a global black list
of addresses that will never be replied to. Exim offers this as option
"never_mail" in the autoreply transport.
+
+
+The enotify extension
+
+The extension "enotify" is specified using the following grammar
+extension.
+
+ notify-command = "notify" { notify-options } <method: string>
+ notify-options = [":from" string]
+ [":importance" <"1" / "2" / "3">]
+ [":options" 1*(string-list / number)]
+ [":message" string]
+
+ command =/ notify-command
+
+ valid_notify_method = "valid_notify_method"
+ <notification-uris: string-list>
+
+ test =/ valid_notify_method
+
+Only the mailto URI scheme is implemented.
Index: sieve.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/sieve.c,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- sieve.c 13 Mar 2007 10:05:17 -0000 1.25
+++ sieve.c 21 Mar 2007 15:15:12 -0000 1.26
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/sieve.c,v 1.25 2007/03/13 10:05:17 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/sieve.c,v 1.26 2007/03/21 15:15:12 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -28,6 +28,9 @@
/* Undefine it for UNIX-style \n end-of-line terminators (default). */
#undef RFC_EOL
+/* Define this for development of the Sieve extension "encoded-character". */
+#undef ENCODED_CHARACTER
+
/* Define this for development of the Sieve extension "envelope-auth". */
#undef ENVELOPE_AUTH
@@ -58,6 +61,9 @@
int keep;
int require_envelope;
int require_fileinto;
+#ifdef ENCODED_CHARACTER
+ int require_encoded_character;
+#endif
#ifdef ENVELOPE_AUTH
int require_envelope_auth;
#endif
@@ -126,6 +132,10 @@
static const struct String str_fileinto={ str_fileinto_c, 8 };
static uschar str_envelope_c[]="envelope";
static const struct String str_envelope={ str_envelope_c, 8 };
+#ifdef ENCODED_CHARACTER
+static uschar str_encoded_character_c[]="encoded-character";
+static const struct String str_encoded_character={ str_encoded_character_c, 17 };
+#endif
#ifdef ENVELOPE_AUTH
static uschar str_envelope_auth_c[]="envelope-auth";
static const struct String str_envelope_auth={ str_envelope_auth_c, 13 };
@@ -3058,6 +3068,9 @@
filter->keep=1;
filter->require_envelope=0;
filter->require_fileinto=0;
+#ifdef ENCODED_CHARACTER
+filter->require_encoded_character=0;
+#endif
#ifdef ENVELOPE_AUTH
filter->require_envelope_auth=0;
#endif
@@ -3130,6 +3143,9 @@
{
if (eq_octet(check,&str_envelope,0)) filter->require_envelope=1;
else if (eq_octet(check,&str_fileinto,0)) filter->require_fileinto=1;
+#ifdef ENCODED_CHARACTER
+ else if (eq_octet(check,&str_encoded_character,0)) filter->require_encoded_character=1;
+#endif
#ifdef ENVELOPE_AUTH
else if (eq_octet(check,&str_envelope_auth,0)) filter->require_envelope_auth=1;
#endif