Commit 75e3a3eb 75e3a3ebde7a363bf65e6c51a179508a3a1b3e62 by Sergey Poznyakoff

Updated

1 parent f1cbdaab
1 2002-12-14 Sergey Poznyakoff
2
3 * mail/previous.c: Skip deleted messages
4 * mail/next: Likewise.
5
6 * auth/sql.c (mu_auth_sql_by_uid): Fixed typo.
7
8 * include/mailutils/libsieve.h: Changed type of `number'
9 to size_t.
10 * libsieve/sieve.y (union): Likewise
11 * include/mailutils/mu_auth.h: Removed duplicate declaration
12 of mu_auth_data_free.
13 * libsieve/actions.c (build_mime): To improve readability,
14 output additional newline before reporting the reason.
15 * libsieve/sieve.l: Allow backslashes in quoted strings.
16 * sieve/testsuite/Reject: Updated
17
18 * doc/texinfo/libmu_scm.texi: New file. Documents libmu_scm
19 library.
20 * doc/texinfo/Makefile.am: Added libmu_scm.texi
21 * doc/texinfo/libmuauth.texi: Updated
22 * doc/texinfo/libsieve.texi: Updated
23 * doc/texinfo/mailutils.texi: Updated
24 * doc/texinfo/programs.texi: Updated
25 * doc/texinfo/imap4.texi: Updated
26 * doc/texinfo/mailer.texi: Updated
27
28 * TODO: Updated
29 * mh/TODO: New file
30 * NEWS: Updated
31
1 2002-12-13 Sergey Poznyakoff 32 2002-12-13 Sergey Poznyakoff
2 33
3 * mail.local/mail.local.h: Create temporary mailbox instead of 34 * mail.local/mail.local.h: Create temporary mailbox instead of
......
...@@ -10,6 +10,10 @@ Version 0.2: ...@@ -10,6 +10,10 @@ Version 0.2:
10 to disable support for any protocol or mailbox format to reduce 10 to disable support for any protocol or mailbox format to reduce
11 the size of the library. 11 the size of the library.
12 12
13 * Added new utility mailutils-config. This utility prints gcc command
14 line options needed for compiling and linknig an application against
15 mailutils.
16
13 * libsieve: New library. Supports Sieve language as described in 17 * libsieve: New library. Supports Sieve language as described in
14 RFC 3028 and provides a mechanism for dynamic loading of 18 RFC 3028 and provides a mechanism for dynamic loading of
15 user-defined actions, tests and comparators. 19 user-defined actions, tests and comparators.
......
...@@ -115,14 +115,34 @@ IMPORTANT: ...@@ -115,14 +115,34 @@ IMPORTANT:
115 115
116 + support AUTH=anonymous (imap://cyrus.andrew.cmu.edu/archive.info-cyrus) 116 + support AUTH=anonymous (imap://cyrus.andrew.cmu.edu/archive.info-cyrus)
117 117
118 [libmuauth]
119
120 - First argument to mu_auth_fp (and second one to mu_auth_runlist) should
121 be struct mu_auth_data ** instead of void *.
122
118 [examples] 123 [examples]
119 124
120 - unify the mbox-* and mimetest examples with messages, it would be nice 125 - unify the mbox-* and mimetest examples with messages, it would be nice
121 to have a general purpose tool 126 to have a general purpose tool
122 127
128 [mh]
129
130 - see mh/TODO
131
123 [sieve] 132 [sieve]
124 133
125 + need to deal with the envelope addressing issues 134 - Implement boolean shortcut evaluation for `allof' and `anyof'
135
136 - Extend the `text:' token. The planned syntax is:
137
138 text:[-][delimiter]
139
140 The meaning of optional flags is the same as in shell "here document"
141 construct: '-' strips all leading tab characters from the string body,
142 thus allowing it to be indented in a natural fashion; 'delimiter'
143 introduces the new end-of-text delimiter instead of the default
144 dot. If 'delimiter' starts with a backslash, no preprocessing will
145 be performed within a string.
126 146
127 - uid isn't good to identify messages, use message-id? 147 - uid isn't good to identify messages, use message-id?
128 148
......
...@@ -10,8 +10,8 @@ ...@@ -10,8 +10,8 @@
10 10
11 Internet Message Access Protocol - Version (4rev1). In IMAP4, the client 11 Internet Message Access Protocol - Version (4rev1). In IMAP4, the client
12 must be prepared to accept any responses at all times. The server responses 12 must be prepared to accept any responses at all times. The server responses
13 have three forms: status reponses, server data and command continuation 13 have three forms: status responses, server data and command continuation
14 request. Untaged responses, for hitorical reasons are also call 14 request. Untagged responses, for historical reasons are also call
15 "unsolicited responses". 15 "unsolicited responses".
16 16
17 @subsection Commands 17 @subsection Commands
......
...@@ -24,7 +24,7 @@ The API is still changing. ...@@ -24,7 +24,7 @@ The API is still changing.
24 24
25 @deftypefun int mailer_send_message (mailer_t @var{mailer}, message_t @var{msg}, address_t @var{from}, address_t @var{to}); 25 @deftypefun int mailer_send_message (mailer_t @var{mailer}, message_t @var{msg}, address_t @var{from}, address_t @var{to});
26 26
27 If from is not @var{NULL}, it must containg a single fully qualified 27 If from is not @var{NULL}, it must contain a single fully qualified
28 RFC2822 email address which will be used as the envelope from 28 RFC2822 email address which will be used as the envelope from
29 address. This is the address to which delivery status notifications 29 address. This is the address to which delivery status notifications
30 are sent, so it never matters what it is set to until it REALLY matters. 30 are sent, so it never matters what it is set to until it REALLY matters.
...@@ -101,7 +101,7 @@ Some possible use cases the API must support are: ...@@ -101,7 +101,7 @@ Some possible use cases the API must support are:
101 101
102 2 - mailer_deliver(mailer, msg, address_t( "<>" ), to) 102 2 - mailer_deliver(mailer, msg, address_t( "<>" ), to)
103 103
104 Don't want mail loops, so the nul but valid SMTP address of <> is 104 Don't want mail loops, so the null but valid SMTP address of <> is
105 the envelope from. 105 the envelope from.
106 106
107 @subheading The sendmail mailer. 107 @subheading The sendmail mailer.
......
...@@ -118,10 +118,10 @@ Mailutils. ...@@ -118,10 +118,10 @@ Mailutils.
118 @end ifinfo 118 @end ifinfo
119 @menu 119 @menu
120 * Introduction:: GNU Mailutils 120 * Introduction:: GNU Mailutils
121 @comment * Concrete API:: Concrete API. 121 * libmailbox:: Main library
122 * Framework:: Framework. 122 * libmuauth:: Auxiliary library for authenticating users.
123 * Authentication Library:: Auxiliary library for authenticating users. 123 * libmu_scm:: Interface with Guile
124 * Sieve Library:: GNU implementation of Sieve mail filtering. 124 * libsieve:: GNU implementation of Sieve mail filtering.
125 * Programs:: Programs. 125 * Programs:: Programs.
126 * Reporting Bugs:: How to report a bug. 126 * Reporting Bugs:: How to report a bug.
127 * News:: Where to get information about @sc{gnu} Mailutils 127 * News:: Where to get information about @sc{gnu} Mailutils
...@@ -134,7 +134,7 @@ Indices ...@@ -134,7 +134,7 @@ Indices
134 134
135 @end menu 135 @end menu
136 136
137 @node Introduction, Framework, Top, Top 137 @node Introduction, libmailbox, Top, Top
138 @comment node-name, next, previous, up 138 @comment node-name, next, previous, up
139 @chapter Introduction 139 @chapter Introduction
140 @cindex Introduction 140 @cindex Introduction
...@@ -257,34 +257,34 @@ Notifications} ...@@ -257,34 +257,34 @@ Notifications}
257 257
258 @end itemize 258 @end itemize
259 259
260 @comment @node Concrete API, Framework, Introduction, Top 260 @node libmailbox, libmuauth, Introduction, Top
261 @comment @comment node-name, next, previous, up
262 @comment @chapter Concrete API
263 @comment @cindex Concrete API
264
265 @comment @include c-api.texi
266
267 @node Framework, Authentication Library, Introduction, Top
268 @comment node-name, next, previous, up 261 @comment node-name, next, previous, up
269 @chapter Framework 262 @chapter Framework
270 @cindex Framework 263 @cindex Framework
271 264
272 @include framework.texi 265 @include framework.texi
273 266
274 @node Authentication Library, Sieve Library, Framework, Top 267 @node libmuauth, libmu_scm, libmailbox, Top
275 @chapter Authentication Library 268 @chapter Authentication Library
276 @cindex Authentication Library 269 @cindex Authentication Library
277 @cindex libmuauth 270 @cindex libmuauth
278 271
279 @include libmuauth.texi 272 @include libmuauth.texi
280 273
281 @node Sieve Library, Programs, Authentication Library, Top 274 @node libmu_scm, libsieve, libmuauth, Top
275 @chapter Mailutils to Scheme interface
276 @cindex Scheme
277 @cindex libmu_scm
278
279 @include libmu_scm.texi
280
281 @node libsieve, Programs, libmu_scm, Top
282 @chapter Sieve Library 282 @chapter Sieve Library
283 @cindex Sieve Library 283 @cindex Sieve Library
284 @cindex libsieve 284 @cindex libsieve
285 @include libsieve.texi 285 @include libsieve.texi
286 286
287 @node Programs, Reporting Bugs, Sieve Library, Top 287 @node Programs, Reporting Bugs, libsieve, Top
288 @comment node-name, next, previous, up 288 @comment node-name, next, previous, up
289 @chapter Programs 289 @chapter Programs
290 @cindex Programs 290 @cindex Programs
......
...@@ -310,7 +310,7 @@ of seconds. ...@@ -310,7 +310,7 @@ of seconds.
310 @cindex :auth 310 @cindex :auth
311 311
312 These options control the authorization and authentication module 312 These options control the authorization and authentication module
313 lists. For a description of auhtentication concepts, refer to 313 lists. For a description of authentication concepts, refer to
314 @xref{authentication}. 314 @xref{authentication}.
315 315
316 @table @option 316 @table @option
...@@ -351,7 +351,7 @@ The hashed value of the user password is retrieved from the @acronym{sql} ...@@ -351,7 +351,7 @@ The hashed value of the user password is retrieved from the @acronym{sql}
351 database using query supplied by @option{--sql-getpass} option 351 database using query supplied by @option{--sql-getpass} option
352 (see below). 352 (see below).
353 @item pam 353 @item pam
354 The user is authenicated via pluggable authentication module 354 The user is authenticated via pluggable authentication module
355 (@acronym{pam}). The @acronym{pam} service name to be used is 355 (@acronym{pam}). The @acronym{pam} service name to be used is
356 configured via @option{--pam-service} option (see below) 356 configured via @option{--pam-service} option (see below)
357 @end table 357 @end table
...@@ -455,7 +455,7 @@ be run either as a standalone program or from @file{inetd.conf} file. ...@@ -455,7 +455,7 @@ be run either as a standalone program or from @file{inetd.conf} file.
455 455
456 @sc{gnu} imap4d supports a notion of @dfn{namespaces} defined in RFC 2342. A 456 @sc{gnu} imap4d supports a notion of @dfn{namespaces} defined in RFC 2342. A
457 namespace is a set of directories upon which the user has certain 457 namespace is a set of directories upon which the user has certain
458 permissions. It should be understood that these persmissions apply 458 permissions. It should be understood that these permissions apply
459 only if the underlying filesystem allows them. 459 only if the underlying filesystem allows them.
460 460
461 The three namespaces supported by @command{imap4d} are: 461 The three namespaces supported by @command{imap4d} are:
...@@ -1306,7 +1306,7 @@ Prints out the messages from @var{msglist}. The variable @code{crt} ...@@ -1306,7 +1306,7 @@ Prints out the messages from @var{msglist}. The variable @code{crt}
1306 determines the minimum number of lines the body of the message must 1306 determines the minimum number of lines the body of the message must
1307 contain in order to be piped through pager command specified 1307 contain in order to be piped through pager command specified
1308 by environment variable @code{PAGER}. If @code{crt} is set to a numeric 1308 by environment variable @code{PAGER}. If @code{crt} is set to a numeric
1309 value, this value is taken as the mininmum number of lines. Otherwise, 1309 value, this value is taken as the minimum number of lines. Otherwise,
1310 if @code{crt} is set without a value then the height of the terminal 1310 if @code{crt} is set without a value then the height of the terminal
1311 screen is used to compute the threshold. The number of lines on 1311 screen is used to compute the threshold. The number of lines on
1312 screen is controlled by @code{screen} variable. 1312 screen is controlled by @code{screen} variable.
...@@ -2028,7 +2028,7 @@ Enable network protocol traces (MU_DEBUG_PROT) ...@@ -2028,7 +2028,7 @@ Enable network protocol traces (MU_DEBUG_PROT)
2028 Enable sieve trace (MU_SIEVE_DEBUG_TRACE) 2028 Enable sieve trace (MU_SIEVE_DEBUG_TRACE)
2029 2029
2030 @item l 2030 @item l
2031 Enble sieve action logs 2031 Enable sieve action logs
2032 @end table 2032 @end table
2033 2033
2034 The digits in the range @samp{0} -- @samp{9} used in @var{flags} set 2034 The digits in the range @samp{0} -- @samp{9} used in @var{flags} set
...@@ -2209,7 +2209,7 @@ by default only the first one is presented. ...@@ -2209,7 +2209,7 @@ by default only the first one is presented.
2209 2209
2210 @item -d 2210 @item -d
2211 @itemx --debug 2211 @itemx --debug
2212 Display mailbox debuging information. 2212 Display mailbox debugging information.
2213 2213
2214 @item -f @var{MAILBOX} 2214 @item -f @var{MAILBOX}
2215 @itemx --folder=@var{MAILBOX} 2215 @itemx --folder=@var{MAILBOX}
...@@ -2513,7 +2513,6 @@ The program uses following option groups: @xref{mailbox}. ...@@ -2513,7 +2513,6 @@ The program uses following option groups: @xref{mailbox}.
2513 * Specifying Mailboxes to Operate Upon:: 2513 * Specifying Mailboxes to Operate Upon::
2514 * Passing Options to Scheme:: 2514 * Passing Options to Scheme::
2515 * Guimb Invocation Summary:: 2515 * Guimb Invocation Summary::
2516 * Scheme Procedures and Variables::
2517 @end menu 2516 @end menu
2518 2517
2519 @node Specifying Scheme Program to Execute 2518 @node Specifying Scheme Program to Execute
...@@ -2596,7 +2595,7 @@ lines to the beginning of your script to allow for its immediate execution: ...@@ -2596,7 +2595,7 @@ lines to the beginning of your script to allow for its immediate execution:
2596 @noindent 2595 @noindent
2597 (replace @samp{/usr/local/bin/} with the actual path to the @command{guimb}). 2596 (replace @samp{/usr/local/bin/} with the actual path to the @command{guimb}).
2598 2597
2599 Otherwise, if you use @option{--file} or @option{--expression} oprions, 2598 Otherwise, if you use @option{--file} or @option{--expression} options,
2600 the additional arguments may be passed to the Scheme program @option{-g} 2599 the additional arguments may be passed to the Scheme program @option{-g}
2601 (@option{--guile-arg}) command line option. For example: 2600 (@option{--guile-arg}) command line option. For example:
2602 2601
...@@ -2656,213 +2655,6 @@ Display help message. ...@@ -2656,213 +2655,6 @@ Display help message.
2656 Display program version. 2655 Display program version.
2657 @end table 2656 @end table
2658 2657
2659 @node Scheme Procedures and Variables
2660 @subsection Scheme Procedures and Variables
2661
2662 @menu
2663 * Address Functions::
2664 * Mailbox Functions::
2665 * Message Functions::
2666 * MIME Functions::
2667 * Log Functions::
2668 @end menu
2669
2670
2671 @node Address Functions
2672 @subsubsection Address Functions
2673
2674 @deffn Function mu-address-get-personal ADDRESS NUM
2675 Return personal part of an email address.
2676 @end deffn
2677
2678 @deffn Function mu-address-get-comments ADDRESS NUM
2679 @end deffn
2680
2681 @deffn Function mu-address-get-email ADDRESS NUM
2682 Return email part of an email address.
2683 @end deffn
2684
2685 @deffn Function mu-address-get-domain ADDRESS NUM
2686 Return domain part of an email address
2687 @end deffn
2688
2689 @deffn Function mu-address-get-local ADDRESS NUM
2690 Return local part of an email address.
2691 @end deffn
2692
2693 @deffn Function mu-address-get-count ADDRESS
2694 Return number of parts in email address.
2695 @end deffn
2696
2697 @node Mailbox Functions
2698 @subsubsection Mailbox Functions
2699
2700 @deffn Function mu-mailbox-open URL MODE
2701 Opens a mailbox specified by URL.
2702 @end deffn
2703
2704 @deffn Function mu-mailbox-close MBOX
2705 Closes mailbox MBOX
2706 @end deffn
2707
2708 @deffn Function mu-mailbox-get-url MBOX
2709 Returns the URL of the mailbox.
2710 @end deffn
2711
2712 @deffn Function mu-mailbox-get-port MBOX MODE
2713 Returns a port associated with the contents of the MBOX.
2714 MODE is a string defining operation mode of the stream. It may
2715 contain any of the two characters: @samp{r} for reading, @samp{w} for
2716 writing.
2717 @end deffn
2718
2719 @deffn Function mu-mailbox-get-message MBOX MSGNO
2720 Retrieve from MBOX message # MSGNO.
2721 @end deffn
2722
2723 @deffn Function mu-mailbox-messages-count MBOX
2724 Returns number of messages in the mailbox.
2725 @end deffn
2726
2727 @deffn Function mu-mailbox-expunge MBOX
2728 Expunges deleted messages from the mailbox.
2729 @end deffn
2730
2731 @deffn Function mu-mailbox-url MBOX
2732 Returns the URL of the mailbox
2733 @end deffn
2734
2735 @deffn Function mu-mailbox-append-message MBOX MESG
2736 Appends the message to the mailbox
2737 @end deffn
2738
2739 @node Message Functions
2740 @subsubsection Message Functions
2741
2742 @deffn Function mu-message-copy MESG
2743 Creates the copy of the given message.
2744 @end deffn
2745
2746 @deffn Function mu-message-set-header MESG HEADER VALUE REPLACE
2747 Sets new VALUE to the header HEADER of the message MESG.
2748 If the HEADER is already present in the message its value
2749 is replaced with the supplied one if the optional REPLACE is
2750 #t. Otherwise new header is created and appended.
2751 @end deffn
2752
2753 @deffn Function mu-message-get-size MESG
2754 Returns the size of the given message.
2755 @end deffn
2756
2757 @deffn Function mu-message-get-lines MESG
2758 Returns number of lines in the given message.
2759 @end deffn
2760
2761 @deffn Function mu-message-get-sender MESG
2762 Returns the sender email address for the message MESG.
2763 @end deffn
2764
2765 @deffn Function mu-message-get-header MESG HEADER
2766 Returns the header value of the HEADER in the MESG.
2767 @end deffn
2768
2769 @deffn Function mu-message-get-header-fields MESG HEADERS
2770 Returns the list of headers in the MESG. If optional HEADERS is
2771 specified it should be a list of header names to restrict return
2772 value to.
2773 @end deffn
2774
2775 @deffn Function mu-message-set-header-fields MESG LIST REPLACE
2776 Set the headers in the message MESG from LIST
2777 LIST is a list of (cons HEADER VALUE)
2778 Optional parameter REPLACE specifies whether the new header
2779 values should replace the headers already present in the
2780 message.
2781 @end deffn
2782
2783 @deffn Function mu-message-delete MESG FLAG
2784 Mark given message as deleted. Optional FLAG allows to toggle deleted mark
2785 The message is deleted if it is #t and undeleted if it is #f
2786 @end deffn
2787
2788 @deffn Function mu-message-get-flag MESG FLAG
2789 Return value of the attribute FLAG.
2790 @end deffn
2791
2792 @deffn Function mu-message-set-flag MESG FLAG VALUE
2793 Set the given attribute of the message. If optional VALUE is #f, the
2794 attribute is unset.
2795 @end deffn
2796
2797 @deffn Function mu-message-get-user-flag MESG FLAG
2798 Returns value of the user attribute FLAG.
2799 @end deffn
2800
2801 @deffn Function mu-message-set-user-flag MESG FLAG VALUE
2802 Set the given user attribute of the message. If optional VALUE is
2803 #f, the attribute is unset.
2804 @end deffn
2805
2806 @deffn Function mu-message-get-port MESG MODE FULL
2807 Returns a port associated with the given MESG. MODE is a string
2808 defining operation mode of the stream. It may contain any of the
2809 two characters: @samp{r} for reading, @samp{w} for writing.
2810 If optional FULL argument specified, it should be a boolean value.
2811 If it is #t then the returned port will allow access to any
2812 part of the message (including headers). If it is #f then the port
2813 accesses only the message body (the default).
2814 @end deffn
2815
2816 @deffn Function mu-message-get-body MESG
2817 Returns the message body for the message MESG.
2818 @end deffn
2819
2820 @deffn Function mu-message-send MESG MAILER
2821 Sends the message MESG. Optional MAILER overrides default
2822 mailer settings in mu-mailer.
2823 @end deffn
2824
2825 @node MIME Functions
2826 @subsubsection MIME Functions
2827
2828 @deffn Function mu-mime-create FLAGS MESG
2829 Creates a new MIME object.
2830 @end deffn
2831
2832 @deffn Function mu-mime-multipart? MIME
2833 Returns #t if MIME is a multipart object.
2834 @end deffn
2835
2836 @deffn Function mu-mime-get-num-parts MIME
2837 Returns number of parts in a MIME object.
2838 @end deffn
2839
2840 @deffn Function mu-mime-get-part MIME PART
2841 Returns part number PART from a MIME object.
2842 @end deffn
2843
2844 @deffn Function mu-mime-add-part MIME MESG
2845 Adds MESG to the MIME object.
2846 @end deffn
2847
2848 @deffn Function mu-mime-get-message MIME
2849 Converts MIME object to a message.
2850 @end deffn
2851
2852 @node Log Functions
2853 @subsubsection Log Functions
2854
2855 @deffn Function mu-openlog IDENT OPTION FACILITY
2856 Opens a connection to the system logger for Guile program.
2857 @end deffn
2858
2859 @deffn Function mu-logger PRIO TEXT
2860 Generates a log message to be distributed via syslogd.
2861 @end deffn
2862
2863 @deffn Function mu-closelog
2864 Closes the channel to the system logger open by mu-openlog.
2865 @end deffn
2866 2658
2867 @page 2659 @page
2868 @node comsatd 2660 @node comsatd
......
...@@ -44,45 +44,44 @@ ENVELOPE TO: <coyote@desert.example.org> ...@@ -44,45 +44,44 @@ ENVELOPE TO: <coyote@desert.example.org>
44 11: I don't want to read these messages. 44 11: I don't want to read these messages.
45 12: 45 12:
46 13: Regards. 46 13: Regards.
47 14: . 47 14:
48 15: 48 -re
49 -re 49 15: [0-9:=-]+
50 16: [0-9:=-]+ 50 16: Content-Type: message/delivery-status
51 17: Content-Type: message/delivery-status 51 17:
52 18: 52 -re
53 -re 53 18: Reporting-UA: sieve; GNU Mailutils [0-9][0-9.]*
54 19: Reporting-UA: sieve; GNU Mailutils [0-9][0-9.]* 54 -re
55 -re 55 19: Arrival-Date: [A-Z][a-z][a-z], [A-Z][a-z][a-z] [ 0-3][0-9] [ 0-2][0-9]:[0-6][0-9]:[0-6][0-9] [0-9][0-9][0-9][0-9] [a-zA-Z0-9]*
56 20: Arrival-Date: [A-Z][a-z][a-z], [A-Z][a-z][a-z] [ 0-3][0-9] [ 0-2][0-9]:[0-6][0-9]:[0-6][0-9] [0-9][0-9][0-9][0-9] [a-zA-Z0-9]* 56 20: Final-Recipient: RFC822; foobar@nonexistent.net
57 21: Final-Recipient: RFC822; foobar@nonexistent.net 57 21: Action: deleted
58 22: Action: deleted 58 22: Disposition: automatic-action/MDN-sent-automatically;deleted
59 23: Disposition: automatic-action/MDN-sent-automatically;deleted 59 -re
60 -re 60 23: Last-Attempt-Date: [A-Z][a-z][a-z], [A-Z][a-z][a-z] [ 0-3][0-9] [ 0-2][0-9]:[0-6][0-9]:[0-6][0-9] [0-9][0-9][0-9][0-9] [a-zA-Z0-9]*
61 24: Last-Attempt-Date: [A-Z][a-z][a-z], [A-Z][a-z][a-z] [ 0-3][0-9] [ 0-2][0-9]:[0-6][0-9]:[0-6][0-9] [0-9][0-9][0-9][0-9] [a-zA-Z0-9]* 61 24:
62 25: 62 -re
63 -re 63 25: [0-9:=-]+
64 26: [0-9:=-]+ 64 26: Content-Type: message/rfc822
65 27: Content-Type: message/rfc822 65 27:
66 28: 66 28: From: coyote@desert.example.org
67 29: From: coyote@desert.example.org 67 29: To: roadrunner@acme.example.com
68 30: To: roadrunner@acme.example.com 68 30: Subject: I have a present for you
69 31: Subject: I have a present for you 69 31: X-Caffeine: C8H10N4O2
70 32: X-Caffeine: C8H10N4O2 70 32:
71 33: 71 33: Look, I'm sorry about the whole anvil thing, and I really
72 34: Look, I'm sorry about the whole anvil thing, and I really 72 34: didn't mean to try and drop it on you from the top of the
73 35: didn't mean to try and drop it on you from the top of the 73 35: cliff. I want to try to make it up to you. I've got some
74 36: cliff. I want to try to make it up to you. I've got some 74 36: great birdseed over here at my place--top of the line
75 37: great birdseed over here at my place--top of the line 75 37: stuff--and if you come by, I'll have it all wrapped up
76 38: stuff--and if you come by, I'll have it all wrapped up 76 38: for you. I'm really sorry for all the problems I've caused
77 39: for you. I'm really sorry for all the problems I've caused 77 39: for you over the years, but I know we can work this out.
78 40: for you over the years, but I know we can work this out. 78 40:
79 41: 79 41: --
80 42: -- 80 42: Wile E. Coyote "Super Genius" coyote@desert.example.org
81 43: Wile E. Coyote "Super Genius" coyote@desert.example.org 81 43:
82 44: 82 -re
83 -re 83 44: [0-9:=-]+
84 45: [0-9:=-]+ 84 45:
85 46:
86 END OF MESSAGE 85 END OF MESSAGE
87 ENVELOPE FROM: MAILER-DAEMON@nonexistent.net 86 ENVELOPE FROM: MAILER-DAEMON@nonexistent.net
88 ENVELOPE TO: <b1ff@de.res.example.com> 87 ENVELOPE TO: <b1ff@de.res.example.com>
...@@ -104,43 +103,42 @@ ENVELOPE TO: <b1ff@de.res.example.com> ...@@ -104,43 +103,42 @@ ENVELOPE TO: <b1ff@de.res.example.com>
104 11: I don't want to read these messages. 103 11: I don't want to read these messages.
105 12: 104 12:
106 13: Regards. 105 13: Regards.
107 14: . 106 14:
108 15: 107 -re
109 -re 108 15: [0-9:=-]+
110 16: [0-9:=-]+ 109 16: Content-Type: message/delivery-status
111 17: Content-Type: message/delivery-status 110 17:
112 18: 111 -re
113 -re 112 18: Reporting-UA: sieve; GNU Mailutils [0-9][0-9.]*
114 19: Reporting-UA: sieve; GNU Mailutils [0-9][0-9.]* 113 -re
115 -re 114 19: Arrival-Date: [A-Z][a-z][a-z], [A-Z][a-z][a-z] [ 0-3][0-9] [ 0-2][0-9]:[0-6][0-9]:[0-6][0-9] [0-9][0-9][0-9][0-9] [a-zA-Z0-9]*
116 20: Arrival-Date: [A-Z][a-z][a-z], [A-Z][a-z][a-z] [ 0-3][0-9] [ 0-2][0-9]:[0-6][0-9]:[0-6][0-9] [0-9][0-9][0-9][0-9] [a-zA-Z0-9]* 115 20: Final-Recipient: RFC822; foobar@nonexistent.net
117 21: Final-Recipient: RFC822; foobar@nonexistent.net 116 21: Action: deleted
118 22: Action: deleted 117 22: Disposition: automatic-action/MDN-sent-automatically;deleted
119 23: Disposition: automatic-action/MDN-sent-automatically;deleted 118 -re
120 -re 119 23: Last-Attempt-Date: [A-Z][a-z][a-z], [A-Z][a-z][a-z] [ 0-3][0-9] [ 0-2][0-9]:[0-6][0-9]:[0-6][0-9] [0-9][0-9][0-9][0-9] [a-zA-Z0-9]*
121 24: Last-Attempt-Date: [A-Z][a-z][a-z], [A-Z][a-z][a-z] [ 0-3][0-9] [ 0-2][0-9]:[0-6][0-9]:[0-6][0-9] [0-9][0-9][0-9][0-9] [a-zA-Z0-9]* 120 24:
122 25: 121 -re
123 -re 122 25: [0-9:=-]+
124 26: [0-9:=-]+ 123 26: Content-Type: message/rfc822
125 27: Content-Type: message/rfc822 124 27:
126 28: 125 28: From: youcouldberich!@reply-by-postal-mail.invalid
127 29: From: youcouldberich!@reply-by-postal-mail.invalid 126 29: To: rube@landru.example.edu
128 30: To: rube@landru.example.edu 127 30: Subject: $$$ YOU, TOO, CAN BE A MILLIONAIRE! $$$
129 31: Subject: $$$ YOU, TOO, CAN BE A MILLIONAIRE! $$$ 128 31: Date: TBD
130 32: Date: TBD 129 32: X-Number: 0015
131 33: X-Number: 0015 130 33:
132 34: 131 34: YOU MAY HAVE ALREADY WON TEN MILLION DOLLARS, BUT I DOUBT
133 35: YOU MAY HAVE ALREADY WON TEN MILLION DOLLARS, BUT I DOUBT 132 35: IT! SO JUST POST THIS TO SIX HUNDRED NEWSGROUPS! IT WILL
134 36: IT! SO JUST POST THIS TO SIX HUNDRED NEWSGROUPS! IT WILL 133 36: GUARANTEE THAT YOU GET AT LEAST FIVE RESPONSES WITH MONEY!
135 37: GUARANTEE THAT YOU GET AT LEAST FIVE RESPONSES WITH MONEY! 134 37: MONEY! MONEY! COLD HARD CASH! YOU WILL RECEIVE OVER
136 38: MONEY! MONEY! COLD HARD CASH! YOU WILL RECEIVE OVER 135 38: $20,000 IN LESS THAN TWO MONTHS! AND IT'S LEGAL!!!!!!!!!
137 39: $20,000 IN LESS THAN TWO MONTHS! AND IT'S LEGAL!!!!!!!!! 136 39: !!!!!!!!!!!!!!!!!!111111111!!!!!!!11111111111!!1 JUST
138 40: !!!!!!!!!!!!!!!!!!111111111!!!!!!!11111111111!!1 JUST 137 40: SEND $5 IN SMALL, UNMARKED BILLS TO THE ADDRESSES BELOW!
139 41: SEND $5 IN SMALL, UNMARKED BILLS TO THE ADDRESSES BELOW! 138 41:
140 42: 139 -re
141 -re 140 42: [0-9:=-]+
142 43: [0-9:=-]+ 141 43:
143 44:
144 END OF MESSAGE 142 END OF MESSAGE
145 ENVELOPE FROM: MAILER-DAEMON@nonexistent.net 143 ENVELOPE FROM: MAILER-DAEMON@nonexistent.net
146 ENVELOPE TO: <bar@dontmailme.org> 144 ENVELOPE TO: <bar@dontmailme.org>
...@@ -162,40 +160,39 @@ ENVELOPE TO: <bar@dontmailme.org> ...@@ -162,40 +160,39 @@ ENVELOPE TO: <bar@dontmailme.org>
162 11: I don't want to read these messages. 160 11: I don't want to read these messages.
163 12: 161 12:
164 13: Regards. 162 13: Regards.
165 14: . 163 14:
166 15: 164 -re
167 -re 165 15: [0-9:=-]+
168 16: [0-9:=-]+ 166 16: Content-Type: message/delivery-status
169 17: Content-Type: message/delivery-status 167 17:
170 18: 168 -re
171 -re 169 18: Reporting-UA: sieve; GNU Mailutils [0-9][0-9.]*
172 19: Reporting-UA: sieve; GNU Mailutils [0-9][0-9.]* 170 -re
173 -re 171 19: Arrival-Date: [A-Z][a-z][a-z], [A-Z][a-z][a-z] [ 0-3][0-9] [ 0-2][0-9]:[0-6][0-9]:[0-6][0-9] [0-9][0-9][0-9][0-9] [a-zA-Z0-9]*
174 20: Arrival-Date: [A-Z][a-z][a-z], [A-Z][a-z][a-z] [ 0-3][0-9] [ 0-2][0-9]:[0-6][0-9]:[0-6][0-9] [0-9][0-9][0-9][0-9] [a-zA-Z0-9]* 172 20: Final-Recipient: RFC822; foobar@nonexistent.net
175 21: Final-Recipient: RFC822; foobar@nonexistent.net 173 21: Action: deleted
176 22: Action: deleted 174 22: Disposition: automatic-action/MDN-sent-automatically;deleted
177 23: Disposition: automatic-action/MDN-sent-automatically;deleted 175 -re
178 -re 176 23: Last-Attempt-Date: [A-Z][a-z][a-z], [A-Z][a-z][a-z] [ 0-3][0-9] [ 0-2][0-9]:[0-6][0-9]:[0-6][0-9] [0-9][0-9][0-9][0-9] [a-zA-Z0-9]*
179 24: Last-Attempt-Date: [A-Z][a-z][a-z], [A-Z][a-z][a-z] [ 0-3][0-9] [ 0-2][0-9]:[0-6][0-9]:[0-6][0-9] [0-9][0-9][0-9][0-9] [a-zA-Z0-9]* 177 24:
180 25: 178 -re
181 -re 179 25: [0-9:=-]+
182 26: [0-9:=-]+ 180 26: Content-Type: message/rfc822
183 27: Content-Type: message/rfc822 181 27:
184 28: 182 28: Received: (from bar@dontmailme.org)
185 29: Received: (from bar@dontmailme.org) 183 29: by dontmailme.org id fERKR9N16790
186 30: by dontmailme.org id fERKR9N16790 184 30: for foobar@nonexistent.net; Fri, 28 Dec 2001 22:18:08 +0200
187 31: for foobar@nonexistent.net; Fri, 28 Dec 2001 22:18:08 +0200 185 31: Date: Fri, 28 Dec 2001 23:28:08 +0200
188 32: Date: Fri, 28 Dec 2001 23:28:08 +0200 186 32: From: Bar <bar@dontmailme.org>
189 33: From: Bar <bar@dontmailme.org> 187 33: To: Foo Bar <foobar@nonexistent.net>
190 34: To: Foo Bar <foobar@nonexistent.net> 188 34: Message-Id: <200112232808.fERKR9N16790@dontmailme.org>
191 35: Message-Id: <200112232808.fERKR9N16790@dontmailme.org> 189 35: Subject: Coffee
192 36: Subject: Coffee 190 36:
193 37: 191 37: How about some coffee?
194 38: How about some coffee? 192 38:
195 39: 193 -re
196 -re 194 39: [0-9:=-]+
197 40: [0-9:=-]+ 195 40:
198 41:
199 END OF MESSAGE 196 END OF MESSAGE
200 FILE END 197 FILE END
201 TEST END 198 TEST END
......