X-Git-Url: http://cgit.sxemacs.org/?a=blobdiff_plain;f=texi%2Fsieve.texi;h=5fbab4ccde30f8b198f547b11aeeefc82e9f1d53;hb=1565d783fd5606df0168516bfddecac7e3892426;hp=2bc4d2194f8a2e95ee722113648e85f9aeb5e52d;hpb=f04f087ea4beb3080be9fc57a7eeada3f7c846bb;p=gnus diff --git a/texi/sieve.texi b/texi/sieve.texi index 2bc4d2194..5fbab4ccd 100644 --- a/texi/sieve.texi +++ b/texi/sieve.texi @@ -5,6 +5,27 @@ @synindex fn cp @synindex vr cp @synindex pg cp + +@copying +This file documents the Emacs Sieve package, for server-side mail filtering. + +Copyright @copyright{} 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, +2009, 2010 Free Software Foundation, Inc. + +@quotation +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.3 or +any later version published by the Free Software Foundation; with no +Invariant Sections, with the Front-Cover texts being ``A GNU Manual'', +and with the Back-Cover Texts as in (a) below. A copy of the license +is included in the section entitled ``GNU Free Documentation License''. + +(a) The FSF's Back-Cover Text is: ``You have the freedom to copy and +modify this GNU manual. Buying copies from the FSF supports it in +developing GNU and promoting software freedom.'' +@end quotation +@end copying + @dircategory Emacs @direntry * Sieve: (sieve). Managing Sieve scripts in Emacs. @@ -14,68 +35,22 @@ @end iftex @setchapternewpage odd -@ifnottex - -This file documents the Emacs Sieve package. - -Copyright (C) 2001 Free Software Foundation, Inc. - -Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.1 or -any later version published by the Free Software Foundation; with no -Invariant Sections, with the Front-Cover texts being ``A GNU -Manual'', and with the Back-Cover Texts as in (a) below. A copy of the -license is included in the section entitled ``GNU Free Documentation -License'' in the Emacs manual. - -(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify -this GNU Manual, like GNU software. Copies published by the Free -Software Foundation raise funds for GNU development.'' - -This document is part of a collection distributed under the GNU Free -Documentation License. If you want to distribute this document -separately from the collection, you can do so by adding a copy of the -license to the document, as described in section 6 of the license. -@end ifnottex - -@tex - @titlepage @title Emacs Sieve Manual @author by Simon Josefsson @page - @vskip 0pt plus 1filll -Copyright @copyright{} 2001 Free Software Foundation, Inc. - -Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.1 or -any later version published by the Free Software Foundation; with the -Invariant Sections being none, with the Front-Cover texts being ``A GNU -Manual'', and with the Back-Cover Texts as in (a) below. A copy of the -license is included in the section entitled ``GNU Free Documentation -License'' in the Emacs manual. - -(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify -this GNU Manual, like GNU software. Copies published by the Free -Software Foundation raise funds for GNU development.'' - -This document is part of a collection distributed under the GNU Free -Documentation License. If you want to distribute this document -separately from the collection, you can do so by adding a copy of the -license to the document, as described in section 6 of the license. +@insertcopying @end titlepage -@page -@end tex +@summarycontents +@contents @node Top @top Sieve Support for Emacs -This manual documents the Emacs Sieve package. - -It is intended as a users manual for Sieve Mode and Manage Sieve, and +This is intended as a users manual for Sieve Mode and Manage Sieve, and as a reference manual for the @samp{sieve-manage} protocol Emacs Lisp API. @@ -83,12 +58,18 @@ Sieve is a language for server-side filtering of mail. The language is documented in RFC 3028. This manual does not attempt to document the language, so keep RFC 3028 around. +@ifnottex +@insertcopying +@end ifnottex + @menu * Installation:: Getting ready to use the package. * Sieve Mode:: Editing Sieve scripts. * Managing Sieve:: Managing Sieve scripts on a remote server. +* Examples :: A few Sieve code snippets. * Manage Sieve API :: Interfacing to the Manage Sieve Protocol API. * Standards:: A summary of RFCs and working documents used. +* GNU Free Documentation License:: The license for this documentation. * Index:: Function and variable index. @end menu @@ -108,7 +89,7 @@ commands in your @code{~/.emacs}: (autoload 'sieve-mode "sieve-mode") @end lisp @lisp -(setq auto-mode-alist (cons '("\\.si\\(v\\|eve\\)\\'" . sieve-mode) +(setq auto-mode-alist (cons '("\\.s\\(v\\|iv\\|ieve\\)\\'" . sieve-mode) auto-mode-alist)) @end lisp @@ -126,13 +107,13 @@ runs the hook @code{sieve-mode-hook}. @vindex sieve-mode-syntax-table Sieve mode is derived from @code{c-mode}, and is very similar except for the syntax of comments. The keymap (@code{sieve-mode-map}) is -inherited from @code{c-mode}, as are the the variables for customizing +inherited from @code{c-mode}, as are the variables for customizing indentation. Sieve mode has its own abbrev table (@code{sieve-mode-abbrev-table}) and syntax table (@code{sieve-mode-syntax-table}). In addition to the editing utility functions, Sieve mode also contains -bindings to manage Sieve scripts remotely. @pxref{Managing Sieve}. +bindings to manage Sieve scripts remotely. @xref{Managing Sieve}. @table @kbd @@ -159,7 +140,7 @@ on a remote server. It can be invoked with @kbd{M-x sieve-manage RET}, which queries the user for a server and if necessary, user credentials to use. -When a server has been succesfully contacted, the Manage Sieve buffer +When a server has been successfully contacted, the Manage Sieve buffer looks something like: @example @@ -190,8 +171,8 @@ Activates the currently highlighted script. @findex sieve-deactivate Deactivates the currently highlighted script. -@item M-C-? -@kindex M-C-? +@item C-M-? +@kindex C-M-? @findex sieve-deactivate-all Deactivates all scripts. @@ -230,6 +211,49 @@ Displays help in the minibuffer. @end table +@node Examples +@chapter Examples + +If you are not familiar with Sieve, this chapter contains a few simple +code snippets that you can cut'n'paste and modify at will, until you +feel more comfortable with the Sieve language to write the rules from +scratch. + +The following complete Sieve script places all messages with a matching +@samp{Sender:} header into the given mailbox. Many mailing lists uses +this format. The first line makes sure your Sieve server understands +the @code{fileinto} command. + +@example +require "fileinto"; + +if address "sender" "owner-w3-beta@@xemacs.org" @{ + fileinto "INBOX.w3-beta"; +@} +@end example + +A few mailing lists do not use the @samp{Sender:} header, but has a +unique identifier in some other header. The following is not a +complete script, it assumes that @code{fileinto} has already been +required. + +@example +if header :contains "Delivered-To" "auc-tex@@sunsite.dk" @{ + fileinto "INBOX.auc-tex"; +@} +@end example + +At last, we have the hopeless mailing lists that does not have any +unique identifier and you are forced to match on the @samp{To:} and +@samp{Cc} headers. As before, this snippet assumes that @code{fileinto} +has been required. + +@example +if address ["to", "cc"] "kerberos@@mit.edu" @{ + fileinto "INBOX.kerberos"; +@} +@end example + @node Manage Sieve API @chapter Manage Sieve API @@ -251,7 +275,7 @@ Sets the default port to use, the suggested port number is @code{2000}. @item sieve-manage-log @vindex sieve-manage-log -If non-nil, should be a string naming a buffer where a protocol trace +If non-@code{nil}, should be a string naming a buffer where a protocol trace is dumped (for debugging purposes). @end table @@ -279,7 +303,7 @@ Authenticate to the server. @item sieve-manage-capability @findex sieve-manage-capability -Return a list of capabilities the server support. +Return a list of capabilities the server supports. @item sieve-manage-listscripts @findex sieve-manage-listscripts @@ -287,7 +311,8 @@ List scripts on the server. @item sieve-manage-havespace @findex sieve-manage-havespace -Returns non-nil iff server have roam for a script of given size. +Return non-@code{nil} if the server has room for a script of given +size. @item sieve-manage-getscript @findex sieve-manage-getscript @@ -309,7 +334,7 @@ Indicate which script on the server should be active. The Emacs Sieve package implements all or parts of a small but hopefully growing number of RFCs and drafts documents. This chapter lists the relevant ones. They can all be fetched from -@samp{http://quimby.gnus.org/notes/}. +@uref{http://quimby.gnus.org/notes/}. @table @dfn @@ -321,13 +346,18 @@ A Protocol for Remotely Managing Sieve Scripts @end table +@node GNU Free Documentation License +@appendix GNU Free Documentation License +@include doclicense.texi @node Index -@chapter Index +@unnumbered Index @printindex cp -@summarycontents -@contents @bye @c End: + +@ignore + arch-tag: 6e3ad0af-2eaf-4f35-a081-d40f4a683ec3 +@end ignore