=head1 NAME

C<razor-revoke> - Razor Revoking Agent

=head1 SYNOPSIS

    razor-revoke [options]  file_with_mail_in_rfc822_format

    $ cat mail | razor-revoke
    $ razor-revoke ./mail 
    $ razor-revoke -d ./mail

=head1 DESCRIPTION

C<razor-revoke> is the Razor Revoking Agent which is used for reporting
messages as NOT spam to a Razor Nomination Server. For instance, it can
be invoked if a check incorrectly marked a message as spam or after a
message was incorrectly reported as spam. C<razor-revoke> should be
generally called from a MUA, although there are no restrictions on
invoking it from the command-line. C<razor-revoke> is a filter, which
means that spam messages should be piped through it. By default,
C<razor-revoke> backgrounds and detaches itself from the control
terminal at start-up. 

If C<razor-revoke> is passed more than one mail, it will revoke each against
the database.  Please use this with caution, we don't want the database
to have inaccurate information.
C<razor-revoke> supports mbox-formatted files with 1 or more mails in
them as well as files containing a single RFC 822 (non-mbox) mail.
More than one file may be present on the command line, can be either
a non-mbox or mbox in any order.
However, more than one non-mbox mail cannot be read from stdin.

Both razor-report(1) and C<razor-revoke> require user authentication to
work, see razor-admin(1). This allows the Razor Nomination Server to
keep track of how many messages a user reports and revokes. The more
messages a user correctly reports and/or correctly revokes, the more
trust the user earns. Likewise, when messages are incorrectly reported
or revoked, the trust goes down for that user. Highly trusted users will
have the most affect on the Razor database. 

Note that even after a successful revoke, a mail might still be
considered spam in the Razor Catalogue. For instance, this can occur if
more trusted users consider the mail spam than not spam. 

=head1 USAGE 

C<razor-revoke> takes following arguments: 

=over 4 

=item C<-h> 

Print a usage message and exit. 

=item C<-v> 

Print the version number and exit. 

=item C<-d | --verbose> 

Print debugging information. 

=item C<-debuglevel=n | -dl=n>

Set debug level to 'n'.  Default is 3 without C<-d> option, 9 with.

=item C<-whitelist=file>

Specify file to use for whitelisting.  Overrides 'whitelist' option in
C<razor-agent.conf>.

=item C<-s> 

Simulate a check. Do everything except talk to the server. 

=item C<-conf=filename> 

Specifies an alternate configuration file.
If not specified, it is computed, see razor-agents(1) manpage for details.
See razor-agent.conf(5) manpage for various configuration options.
The default is C<E<lt>razorhomeE<gt>/razor-agent.conf>.

=item C<-home=dir>

Specify razorhome directory.  This is where the configuration file, 
logfiles, identities, and server files live.
If not specified, it is computed, see razor-agents(1) manpage for details.

=item C<-logfile=file>

Specify file to log to instead of whats in configuration file.
The default is C<E<lt>razorhomeE<gt>/razor-agent.log>.

=item C<-ident=filename>

Specify an identify file to use for authenticating with Razor Servers.
If not specified, C<E<lt>razorhomeE<gt>/identity-E<lt>userE<gt>> is used.

=item C<-rs=razor.server.com> 

Use this Razor Nomination Server instead of reading
C<servers.nomination.lst>. 

=item C<-M | --mbox> 

Accept a mailbox name on the command line and revoke every mail in the
mailbox against the database. If in foreground, C<-f>, C<razor-revoke>
will print out the mail number of every mail that was accepted by the
Catalogue server. 

 C<razor-revoke -f -M ~/Mail/incorrectly-marked-spam>

=item C<-i=filename>

Used identity from filename instead of reading E<lt>razorhomeE<gt>/identity.

=item C<-a> 

Authenticate only. If authenticated, exit 0; if not, exit 1. 

=item C<-f> 

Stay in foreground, do not detach and run in background. 

=back

=head1 INTEGRATION WITH MUTT

Add the following line to C<mutt.conf>

     macro index R "|/usr/bin/razor-revoke"

Then press R on the spam message in C<mutt> to report it with
C<razor-revoke>. Since C<razor-revoke> forks, the control will return
immediately.

=head1 AUTHORS

Vipul Ved Prakash E<lt>mail@vipul.netE<gt>, and Chad Norwood E<lt>chad@samo.orgE<gt>

=cut

=head1 SEE ALSO

razor-agents(1), razor-agent.conf(5), razor-check(1), 
razor-admin(1), razor-report(1), razor-whitelist(5)

=head1 LICENSE 

This is free software, distributed under the ARTISTIC license.

