The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
=head1 NAME

C<razor-report> - Razor Reporting Agent

=head1 SYNOPSIS

    razor-report [options]  file_with_mail_in_rfc822_format

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

=head1 DESCRIPTION

C<razor-report> is the Razor Reporting Agent which is used for reporting
spam messages to a Razor Nomination Server. C<razor-report> should be
generally called from a MUA, although there are no restrictions on
invoking it from the command-line. C<razor-report> is a filter, which
means that spam messages should be piped through it. By default,
C<razor-report> backgrounds and detaches itself from the control
terminal at start-up. 

If C<razor-report> is passed more than one mail, it will report each against
the database.  Please use this with caution, we don't want the database 
filled up with mails incorrectly identified as spam.
C<razor-report> 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 C<razor-report> and razor-revoke(1) 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 Catalogue. 

=head1 USAGE 

C<razor-report> 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 to stdout.

=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<-H> 

Compute and print the signature of the mail contents and exit. If
C<-e=integer> is not specified, all supported engines will be used. 

=item C<-S=string> 

Accept a list of pre-computed (with C<-H>) signatures on the command
line, instead of computing one from mail content. Signatures can be
submitted in hex or base64, but base64 is preferred. Requires
C<-e=integer>. Usage: 

razor-report -e 1 -S a8a3d545adb73f9733675571ffeaf10cba87745b 

=item C<-e=integer> 

Specify engine used to create signatures. Must be 1, 2, 3, or 4 in this
version. Engine 1, or C<-e=1>, is used for Razor 1.x signatures. Used
only with C<-S=string> or C<-H>. 

=item C<-ep4=string> 

String used by engine 4 when computing signatures. Published by the
Razor Nomination Servers and updated very frequently. Used only when
C<-e=4>. 


=item C<-i=filename>

Use identity from filename instead of reading E<lt>razorhomeE<gt>/identity.
Razor Servers compute trust for each unique identity.  Razor Agents 
figure out the identity by a 2 step process.  
First, check if identity is specified via cmd-line (-i=file). 
If not there, then look in E<lt>razorhomeE<gt> for identity file.  
If <razorhome> has no identity file, authentication will fail - 
you cannot report or revoke.  See razor-agents.conf(5) for more on 
E<lt>razorhomeE<gt>. 
---fixme----

=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 S "|/usr/bin/razor-report"

Then press S on the spam message in C<mutt> to report it with
C<razor-report>. Since C<razor-report> 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-revoke(1), razor-whitelist(5)

=head1 LICENSE 

This is free software, distributed under the Artistic License 2.0.