50 |
@menu |
@menu |
51 |
* Overview:: Preliminary information. |
* Overview:: Preliminary information. |
52 |
* Configuration:: Writing your own configuration files. |
* Configuration:: Writing your own configuration files. |
53 |
|
* Rule System:: How to use the Rule System. |
54 |
* Invoking Anubis:: How to invoke the GNU @command{anubis}. |
* Invoking Anubis:: How to invoke the GNU @command{anubis}. |
55 |
* Sample Beginning:: Here is a sample beginning. |
* Sample Beginning:: Here is a sample beginning. |
56 |
* TLS/SSL:: Using the TLS/SSL Encryption. |
* TLS/SSL:: Using the TLS/SSL Encryption. |
127 |
the response, and passes it back to the internal host. |
the response, and passes it back to the internal host. |
128 |
|
|
129 |
|
|
130 |
@node Configuration, Invoking Anubis, Overview, Top |
@node Configuration, Rule System, Overview, Top |
131 |
@chapter Configuration |
@chapter Configuration |
132 |
@cindex configuration |
@cindex configuration |
133 |
@cindex settings |
@cindex settings |
182 |
@menu |
@menu |
183 |
* CONTROL Section:: |
* CONTROL Section:: |
184 |
* TRANSLATION Section:: |
* TRANSLATION Section:: |
185 |
* GUILE section:: |
* GUILE Section:: |
|
* Rule System:: |
|
186 |
@end menu |
@end menu |
187 |
|
|
188 |
|
|
390 |
@end example |
@end example |
391 |
|
|
392 |
|
|
393 |
@node TRANSLATION Section, GUILE section, CONTROL Section, Configuration |
@node TRANSLATION Section, GUILE Section, CONTROL Section, Configuration |
394 |
@section The TRANSLATION Section |
@section The TRANSLATION Section |
395 |
@cindex TRANSLATION section, The |
@cindex TRANSLATION section, The |
396 |
|
|
430 |
the local john's configuration file. |
the local john's configuration file. |
431 |
|
|
432 |
|
|
433 |
@node GUILE section, Rule System, TRANSLATION Section, Configuration |
@node GUILE Section, , TRANSLATION Section, Configuration |
434 |
@section The GUILE section |
@section The GUILE Section |
435 |
@cindex GUILE section, The |
@cindex GUILE section, The |
436 |
@cindex Guile |
@cindex Guile |
437 |
|
@cindex extension language |
438 |
@cindex Scheme |
@cindex Scheme |
439 |
|
|
440 |
[This section is missing :-P] |
[This section is missing :-P] |
441 |
|
|
442 |
|
|
443 |
@node Rule System, , GUILE section, Configuration |
@node Rule System, Invoking Anubis, Configuration, Top |
444 |
@section The Rule System (The RULE Section) |
@chapter The Rule System |
445 |
@cindex Basic regular expressions |
@cindex Basic regular expressions |
446 |
@cindex Extended regular expressions |
@cindex Extended regular expressions |
447 |
@cindex Perl regular expressions |
@cindex Perl regular expressions |
475 |
|
|
476 |
|
|
477 |
@node Grammar, Action List, Rule System, Rule System |
@node Grammar, Action List, Rule System, Rule System |
478 |
@subsection Grammar (The Rule System) |
@section Grammar |
479 |
@cindex grammar |
@cindex grammar |
480 |
|
|
481 |
[This section is missing :-P] |
[This section is missing :-P] |
482 |
|
|
483 |
|
|
484 |
@node Action List, Trigger, Grammar, Rule System |
@node Action List, Trigger, Grammar, Rule System |
485 |
@subsection The Action List |
@section The Action List |
486 |
@cindex Action List |
@cindex Action List |
487 |
|
|
488 |
An @dfn{action list} is a list of action commands, which control processing |
An @dfn{action list} is a list of action commands, which control processing |
497 |
* Editing Headers:: How to edit a message header on-the-fly. |
* Editing Headers:: How to edit a message header on-the-fly. |
498 |
* Inserting Files:: How to append text files to an outgoing message. |
* Inserting Files:: How to append text files to an outgoing message. |
499 |
* Mail Encryption:: How to encrypt a message on-the-fly. |
* Mail Encryption:: How to encrypt a message on-the-fly. |
500 |
* Remailers:: How to enable the support for Remailers Type-I. |
* Scheme Programs:: How to execute an external Scheme programs. |
501 |
* External Processor:: How to process a message body using an external tool. |
* External Processor:: How to process a message body using an external tool. |
502 |
|
|
503 |
* Command Summary:: A short command summary. |
* Command Summary:: A short command summary. |
505 |
@end menu |
@end menu |
506 |
|
|
507 |
@node Editing Headers, Inserting Files, Action List, Action List |
@node Editing Headers, Inserting Files, Action List, Action List |
508 |
@subsubsection Editing Headers |
@subsection Editing Headers |
509 |
@cindex message header |
@cindex message header |
510 |
|
|
511 |
@table @samp |
@table @samp |
512 |
@item add = @var{header-line} |
@item add header[@var{key}] @var{value} |
513 |
This action command adds the @var{header-line} to an outgoing |
This action command adds a header line to an outgoing message. |
514 |
message. For example: |
The "header" keyword may be omitted. A @var{key} is the header |
515 |
|
name. For example: |
516 |
|
|
517 |
@example |
@example |
518 |
add = X-Comment: GNU's Not Unix! |
add header[X-Comment1] "GNU's Not Unix!" |
519 |
|
add [X-Comment2] "Support FSF!" |
520 |
@end example |
@end example |
521 |
|
|
522 |
@item remove = @var{header-line} (a regular expression) |
@item remove header[@var{key}] |
523 |
This action command removes the header lines that match @var{header-line} |
This action command removes the header lines that match a pattern |
524 |
from an outgoing message. This has to be a regular expression. |
from an outgoing message. The "header" keyword may be omitted. |
525 |
For example: |
A @var{key} is the header name and it can be a regular expression |
526 |
|
matching a set of header names for "remove". For example: |
527 |
|
|
528 |
@example |
@example |
529 |
remove =^X-Mailer: |
remove header["^X-Mailer"] |
530 |
|
remove ["^X-.*"] |
531 |
@end example |
@end example |
532 |
|
|
533 |
This will remove the @samp{X-Mailer:} line from an outgoing |
The first example will remove the @samp{X-Mailer:} line from |
534 |
message. |
an outgoing message, and the second one will remove all "X-*" |
535 |
|
header lines. |
536 |
|
|
537 |
@item modify = @var{old-header-line} >> @var{new-header-line} |
@item modify header[@var{key}] [@var{new-key}] @var{value} |
538 |
This action command modifies a message header line (entirely or partly). |
This action command modifies a message header line (entirely or partly). |
539 |
An old header line (must be a regular expression) and a new header line |
The "header" keyword may be omitted. A @var{key} is the header name. |
540 |
are separated with @code{ >> }, i.e. @code{@key{SPC}>>@key{SPC}}. |
It may be a regular expression matching a set of header names. |
541 |
|
A @var{new-key} is optional. |
542 |
|
|
543 |
For example, the following code will change the @samp{Reply-To:} |
For example, the following code will change the @samp{Reply-To:} |
544 |
line only if you would send an email to @url{friend@@somewhere.net}. |
line only if you would send an email to @url{friend@@somewhere.net}. |
545 |
|
|
546 |
@example |
@example |
547 |
@group |
@group |
548 |
if header =^To:.*<?friend@@somewhere.net>? |
if header[To] = ".*<?friend@@somewhere.net>?" |
549 |
modify =^Reply-To: >> Reply-To: private@@somewhere.net |
modify header[Reply-To] "private@@somewhere.net" |
550 |
fi |
fi |
551 |
@end group |
@end group |
552 |
@end example |
@end example |
556 |
|
|
557 |
@example |
@example |
558 |
@group |
@group |
559 |
if header =^X-Mailer: PINE |
if header[X-Mailer] = PINE |
560 |
modify =^X-Mailer: >> X-Mailer: The Big Boss |
modify header[X-Mailer] "The Big Boss" |
561 |
fi |
fi |
562 |
@end group |
@end group |
563 |
@end example |
@end example |
567 |
|
|
568 |
@example |
@example |
569 |
@group |
@group |
570 |
if header =^X-Mailer: (.*) |
if header[X-Mailer] = "(.*)" |
571 |
modify =^X-Mailer: >> X-Mailer: The lousy mailer \1 |
modify [X-Mailer] "The lousy mailer \1" |
572 |
fi |
fi |
573 |
@end group |
@end group |
574 |
@end example |
@end example |
576 |
It is allowed to make up to nine substitutions (range: \1---\9). |
It is allowed to make up to nine substitutions (range: \1---\9). |
577 |
@end table |
@end table |
578 |
|
|
579 |
|
|
580 |
@node Inserting Files, Mail Encryption, Editing Headers, Action List |
@node Inserting Files, Mail Encryption, Editing Headers, Action List |
581 |
@subsubsection Inserting Files |
@subsection Inserting Files |
582 |
|
|
583 |
@table @samp |
@table @samp |
584 |
@item signature-file-append = @var{yes-or-no} |
@item signature-file-append = @var{yes-or-no} |
597 |
@end table |
@end table |
598 |
|
|
599 |
|
|
600 |
@node Mail Encryption, Remailers, Inserting Files, Action List |
@node Mail Encryption, Scheme Programs, Inserting Files, Action List |
601 |
@subsubsection Mail Encryption |
@subsection Mail Encryption |
602 |
@cindex GNU Privacy Guard, GnuPG |
@cindex GNU Privacy Guard, GnuPG |
603 |
@cindex Pretty Good Privacy, PGP |
@cindex Pretty Good Privacy, PGP |
604 |
@cindex GPG/PGP private key |
@cindex GPG/PGP private key |
645 |
gpg-sign = yes |
gpg-sign = yes |
646 |
@end group |
@end group |
647 |
@end example |
@end example |
648 |
|
@end table |
649 |
|
|
650 |
|
|
651 |
|
@node Scheme Programs, External Processor, Mail Encryption, Action List |
652 |
|
@subsection Executing Scheme Programs |
653 |
|
@cindex Scheme |
654 |
|
@cindex Guile |
655 |
|
|
656 |
|
@menu |
657 |
|
* ROT-13:: ROT-13 support. |
658 |
|
* Remailers:: How to enable the support for Remailers Type-I. |
659 |
|
@end menu |
660 |
|
|
661 |
|
|
662 |
|
@node ROT-13, Remailers, Scheme Programs, Scheme Programs |
663 |
|
@subsubsection ROT-13 |
664 |
|
@cindex ROT-13 |
665 |
|
|
666 |
|
@table @samp |
667 |
@item rot13-subject = @var{yes-or-no} |
@item rot13-subject = @var{yes-or-no} |
668 |
This command enables the simple ROT-13 message subject encoding. |
This command enables the simple ROT-13 message subject encoding. |
669 |
Value @samp{no} is the default. The ROT-13 encoding is a simple form |
Value @samp{no} is the default. The ROT-13 encoding is a simple form |
677 |
@end table |
@end table |
678 |
|
|
679 |
|
|
680 |
@node Remailers, External Processor, Mail Encryption, Action List |
@node Remailers, , ROT-13, Scheme Programs |
681 |
@subsubsection Remailers Type-I |
@subsubsection Remailers Type-I |
682 |
@cindex remailer |
@cindex remailer |
683 |
|
|
720 |
@end table |
@end table |
721 |
|
|
722 |
|
|
723 |
@node External Processor, Command Summary, Remailers, Action List |
@node External Processor, Command Summary, Scheme Programs, Action List |
724 |
@subsubsection Using an External Processor |
@subsection Using an External Processor |
725 |
|
|
726 |
@table @samp |
@table @samp |
727 |
@item external-body-processor = @var{file-name} [@var{args}] |
@item external-body-processor = @var{file-name} [@var{args}] |
730 |
crypto engine, a spell checker, some text generator, whatever. |
crypto engine, a spell checker, some text generator, whatever. |
731 |
@end table |
@end table |
732 |
|
|
733 |
|
|
734 |
@node Command Summary, Quick Example, External Processor, Action List |
@node Command Summary, Quick Example, External Processor, Action List |
735 |
@subsubsection Command Summary |
@subsection Command Summary |
736 |
|
|
737 |
@example |
@example |
738 |
@group |
@group |
739 |
add = @var{header-line} |
add header[@var{key}] @var{value} |
740 |
remove = @var{header-line} (a regular expression) |
remove header[@var{key}] @var{value} |
741 |
modify = @var{old-header-line} >> @var{new-header-line} |
modify header[@var{key}] [@var{new-key}] @var{value} |
742 |
signature-file-append = @var{yes-or-no} |
signature-file-append = @var{yes-or-no} |
743 |
body-append = @var{file-name} |
body-append = @var{file-name} |
744 |
body-clear-append = @var{file-name} |
body-clear-append = @var{file-name} |
745 |
gpg-passphrase = @var{passphrase} |
gpg-passphrase = @var{passphrase} |
746 |
gpg-encrypt = @var{gpg-keys} |
gpg-encrypt = @var{gpg-keys} |
747 |
gpg-sign = @var{passphrase} or @samp{yes} if @samp{gpg-passphrase} is specified. |
gpg-sign = @var{passphrase} or @samp{yes} if @samp{gpg-passphrase} is specified. |
|
rot13-subject = @var{yes-or-no} |
|
|
rot13-body = @var{yes-or-no} |
|
|
rm-rrt = @var{email-address} |
|
|
rm-post = @var{news-group} |
|
|
rm-gpg = @var{gpg-key} |
|
|
rm-header = @var{header-line} |
|
|
rm-lt = @var{time} |
|
|
rm-rlt = @var{yes-or-no} |
|
748 |
external-body-processor = @var{file-name} [@var{args}] |
external-body-processor = @var{file-name} [@var{args}] |
749 |
@end group |
@end group |
750 |
@end example |
@end example |
751 |
|
|
752 |
|
|
753 |
@node Quick Example, , Command Summary, Action List |
@node Quick Example, , Command Summary, Action List |
754 |
@subsubsection Quick Example |
@subsection Quick Example |
755 |
|
|
756 |
[This section is missing :-P] |
[This section is missing :-P] |
757 |
|
|
758 |
|
|
759 |
@node Trigger, , Action List, Rule System |
@node Trigger, , Action List, Rule System |
760 |
@subsection The Trigger |
@section The Trigger |
761 |
@cindex Trigger, The |
@cindex Trigger, The |
762 |
|
|
763 |
Adding the @samp{@@@@@var{rule-name}} code to your message header line, |
Adding the @samp{@@@@@var{rule-name}} code to your message header line, |
799 |
---BEGIN RULE--- |
---BEGIN RULE--- |
800 |
rule "gpg-encrypt:(.*)" |
rule "gpg-encrypt:(.*)" |
801 |
gpg-encrypt = \1 |
gpg-encrypt = \1 |
802 |
add = X-GPG-Comment: Encrypted for \1 |
add header[X-GPG-Comment] "Encrypted for \1" |
803 |
done |
done |
804 |
---END--- |
---END--- |
805 |
@end group |
@end group |
813 |
those 3---4 lines are enough. |
those 3---4 lines are enough. |
814 |
|
|
815 |
|
|
816 |
@node Invoking Anubis, Sample Beginning, Configuration, Top |
@node Invoking Anubis, Sample Beginning, Rule System, Top |
817 |
@chapter Invoking GNU Anubis |
@chapter Invoking GNU Anubis |
818 |
@cindex command line |
@cindex command line |
819 |
|
|