mirror of
https://git.proxmox.com/git/proxmox-spamassassin
synced 2025-04-28 12:19:37 +00:00
367 lines
14 KiB
Plaintext
367 lines
14 KiB
Plaintext
<@LICENSE>
|
|
Copyright 2004 Apache Software Foundation
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
</@LICENSE>
|
|
|
|
=head1 NAME
|
|
|
|
spamassassin - simple front-end filtering script for SpamAssassin
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
B<spamassassin> [options] [ < I<mailmessage> | I<path> ... ]
|
|
|
|
B<spamassassin> B<-d> [ < I<mailmessage> | I<path> ... ]
|
|
|
|
B<spamassassin> B<-r> [ < I<mailmessage> | I<path> ... ]
|
|
|
|
B<spamassassin> B<-k> [ < I<mailmessage> | I<path> ... ]
|
|
|
|
B<spamassassin> B<-W>|B<-R> [ < I<mailmessage> | I<path> ... ]
|
|
|
|
Options:
|
|
|
|
-L, --local Local tests only (no online tests)
|
|
-r, --report Report message as spam
|
|
-k, --revoke Revoke message as spam
|
|
-d, --remove-markup Remove spam reports from a message
|
|
-C path, --configpath=path, --config-file=path
|
|
Path to standard configuration dir
|
|
-p prefs, --prefspath=file, --prefs-file=file
|
|
Set user preferences file
|
|
--siteconfigpath=path Path for site configs
|
|
(def: /etc/mail/spamassassin)
|
|
--cf='config line' Additional line of configuration
|
|
--pre='config line' Additional line of ".pre" (prepended to configuration)
|
|
-x, --nocreate-prefs Don't create user preferences file
|
|
-e, --exit-code Exit with a non-zero exit code if the
|
|
tested message was spam
|
|
--mbox read in messages in mbox format
|
|
--mbx read in messages in UW mbx format
|
|
-t, --test-mode Pipe message through and add extra
|
|
report to the bottom
|
|
--lint Lint the rule set: report syntax errors
|
|
-W, --add-to-welcomelist Add addresses in mail to persistent address welcomelist
|
|
--add-to-blocklist Add addresses in mail to persistent address blocklist
|
|
-R, --remove-from-welcomelist Remove all addresses found in mail from
|
|
persistent address list
|
|
--add-addr-to-welcomelist=addr Add addr to persistent address welcomelist
|
|
--add-addr-to-blocklist=addr Add addr to persistent address blocklist
|
|
--remove-addr-from-welcomelist=addr Remove addr from persistent address list
|
|
-u username, --username=username Override username taken from the runtime
|
|
environment, used with SQL
|
|
-4 --ipv4only, --ipv4-only, --ipv4 Use IPv4, disable use of IPv6 for DNS etc.
|
|
-6 Use IPv6, disable use of IPv4 where possible
|
|
--progress Print progress bar
|
|
-D, --debug [area,...] Print debugging messages
|
|
-V, --version Print version
|
|
-h, --help Print usage message
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
spamassassin is a simple front-end filter for SpamAssassin.
|
|
|
|
Using the SpamAssassin rule base, it uses a wide range of heuristic
|
|
tests on mail headers and body text to identify "spam", also known as
|
|
unsolicited bulk email. Once identified, the mail is then tagged as
|
|
spam for later filtering using the user's own mail user-agent
|
|
application.
|
|
|
|
The default tagging operations that take place are detailed in L<spamassassin/"TAGGING">.
|
|
|
|
By default, message(s) are read in from STDIN (< I<mailmessage>), or
|
|
from specified files and directories (I<path> ...) STDIN and files
|
|
are assumed to be in I<file> format, with a single message per file.
|
|
Directories are assumed to be in a format where each file in the directory
|
|
contains only one message (directories are not recursed and filenames
|
|
containing whitespace or beginning with "." or "," are skipped).
|
|
The options I<--mbox> and I<--mbx> can override the assumed format,
|
|
see the appropriate OPTION information below.
|
|
|
|
Files compressed with gzip/bzip2/xz/lz4/lzip/lzo are uncompressed
|
|
automatically. See C<Mail::SpamAssassin::ArchiveIterator> for more details.
|
|
|
|
Please note that SpamAssassin is not designed to scan huge messages.
|
|
Messages larger than ~10-20MB should not be fed to SpamAssassin, as memory
|
|
consumption will increase rapidly.
|
|
|
|
=head1 OPTIONS
|
|
|
|
=over 4
|
|
|
|
=item B<-e>, B<--error-code>, B<--exit-code>
|
|
|
|
Exit with a non-zero error code, if the message is determined to be
|
|
spam.
|
|
|
|
=item B<-h>, B<--help>
|
|
|
|
Print help message and exit.
|
|
|
|
=item B<-V>, B<--version>
|
|
|
|
Print version and exit.
|
|
|
|
=item B<-t>, B<--test-mode>
|
|
|
|
Test mode. Pipe message through and add extra report. Note that the report
|
|
text assumes that the message is spam, since in normal use it is only visible
|
|
in this case. Pay attention to the score instead.
|
|
|
|
If you run this with B<-d>, the message will first have SpamAssassin
|
|
markup removed before being tested.
|
|
|
|
=item B<-r>, B<--report>
|
|
|
|
Report this message as manually-verified spam. This will submit the mail
|
|
message read from STDIN to various spam-blocker databases. Currently,
|
|
these are the Distributed Checksum Clearinghouse
|
|
C<https://www.dcc-servers.net/dcc/>, Pyzor
|
|
C<https://www.pyzor.org/>, Vipul's Razor
|
|
C<http://razor.sourceforge.net/>, and SpamCop C<https://www.spamcop.net/>.
|
|
|
|
If the message contains SpamAssassin markup, the markup will be stripped
|
|
out automatically before submission. The support modules for DCC, Pyzor,
|
|
and Razor must be installed for spam to be reported to each service.
|
|
SpamCop reports will have greater effect if you register and set the
|
|
C<spamcop_to_address> option.
|
|
|
|
The message will also be submitted to SpamAssassin's learning systems;
|
|
currently this is the internal Bayesian statistical-filtering system (the
|
|
BAYES rules). (Note that if you I<only> want to perform statistical
|
|
learning, and do not want to report mail to third-parties, you should use
|
|
the C<sa-learn> command directly instead.)
|
|
|
|
=item B<-k>, B<--revoke>
|
|
|
|
Revoke this message. This will revoke the mail message read from STDIN from
|
|
various spam-blocker databases. Currently, these are Vipul's Razor.
|
|
|
|
Revocation support for the Distributed Checksum Clearinghouse, Pyzor, and
|
|
SpamCop is not currently available.
|
|
|
|
If the message contains SpamAssassin markup, the markup will be stripped
|
|
out automatically before submission. The support modules for Razor must
|
|
be installed for spam to be revoked from the service.
|
|
|
|
The message will also be submitted as 'ham' (non-spam) to SpamAssassin's
|
|
learning systems; currently this is the internal Bayesian
|
|
statistical-filtering system (the BAYES rules). (Note that if you I<only>
|
|
want to perform statistical learning, and do not want to report mail to
|
|
third-parties, you should use the C<sa-learn> command directly instead.)
|
|
|
|
=item B<--lint>
|
|
|
|
Syntax check (lint) the rule set and configuration files, reporting
|
|
typos and rules that do not compile correctly. Exits with 0 if there
|
|
are no errors, or greater than 0 if any errors are found.
|
|
|
|
=item B<-W>, B<--add-to-welcomelist>
|
|
|
|
Previously --add-to-whitelist which will work interchangeably until 4.1.
|
|
|
|
Add all email addresses, in the headers and body of the mail message read
|
|
from STDIN, to a persistent address welcomelist. Note that you must be running
|
|
C<spamassassin> or C<spamd> with a persistent address list plugin enabled for
|
|
this to work.
|
|
|
|
=item B<--add-to-blocklist>
|
|
|
|
Previously --add-to-blacklist which will work interchangeably until 4.1.
|
|
|
|
Add all email addresses, in the headers and body of the mail message read
|
|
from STDIN, to the persistent address blocklist. Note that you must be
|
|
running C<spamassassin> or C<spamd> with a persistent address list plugin
|
|
enabled for this to work.
|
|
|
|
=item B<-R>, B<--remove-from-welcomelist>
|
|
|
|
Previously --remove-from-whitelist which will work interchangeably until 4.1.
|
|
|
|
Remove all email addresses, in the headers and body of the mail message read
|
|
from STDIN, from a persistent address list. STDIN must contain a full email
|
|
message, so to remove a single address you should use
|
|
B<--remove-addr-from-welcomelist> instead.
|
|
|
|
Note that you must be running C<spamassassin> or C<spamd> with a persistent
|
|
address list plugin enabled for this to work.
|
|
|
|
=item B<--add-addr-to-welcomelist>
|
|
|
|
Previously --add-addr-to-whitelist which will work interchangeably until 4.1.
|
|
|
|
Add the named email address to a persistent address welcomelist. Note that you
|
|
must be running C<spamassassin> or C<spamd> with a persistent address list
|
|
plugin enabled for this to work.
|
|
|
|
=item B<--add-addr-to-blocklist>
|
|
|
|
Previously --add-addr-to-blacklist which will work interchangeably until 4.1.
|
|
|
|
Add the named email address to a persistent address blocklist. Note that you
|
|
must be running C<spamassassin> or C<spamd> with a persistent address list
|
|
plugin enabled for this to work.
|
|
|
|
=item B<--remove-addr-from-welcomelist>
|
|
|
|
Previously --remove-addr-from-whitelist which will work interchangeably until 4.1.
|
|
|
|
Remove the named email address from a persistent address welcomelist. Note that
|
|
you must be running C<spamassassin> or C<spamd> with a persistent address
|
|
list plugin enabled for this to work.
|
|
|
|
=item B<-u> I<username>, B<--username>=I<username>
|
|
|
|
If specified this username will override the username taken from the runtime
|
|
environment. You can use this option to specify users in a virtual user
|
|
configuration when using SQL as the Bayes backend.
|
|
|
|
NOTE: This option will not change to the given I<username>, it will only attempt
|
|
to act on behalf of that user. Because of this you will need to have proper
|
|
permissions to be able to change files owned by I<username>. In the case of SQL
|
|
this generally is not a problem.
|
|
|
|
=item B< --ipv4only>, B<--ipv4-only>, B<--ipv4>
|
|
|
|
Do not use IPv6 for DNS tests. Normally, SpamAssassin will try to detect if
|
|
IPv6 is available, using only IPv4 if it is not. Use if the existing tests
|
|
for IPv6 availability produce incorrect results or crashes.
|
|
|
|
=item B<-L>, B<--local>
|
|
|
|
Do only the ''local'' tests, ones that do not require an internet connection to
|
|
operate. Normally, SpamAssassin will try to detect whether you are connected
|
|
to the net before doing these tests anyway, but for faster checks you may wish
|
|
to use this.
|
|
|
|
Note that SpamAssassin's network rules are run in parallel. This can cause
|
|
overhead in terms of the number of file descriptors required if B<--local> is
|
|
not used; it is recommended that the minimum limit on fds be raised to at least
|
|
256 for safety.
|
|
|
|
=item B<-d>, B<--remove-markup>
|
|
|
|
Remove SpamAssassin markup (the "SpamAssassin results" report, X-Spam-Status
|
|
headers, etc.) from the mail message. The resulting message, which will be
|
|
more or less identical to the original, pre-SpamAssassin input, will be output
|
|
to STDOUT.
|
|
|
|
(Note: the message will not be exactly identical; some headers will be
|
|
reformatted due to some features of the Mail::Internet package, but the body
|
|
text will be.)
|
|
|
|
=item B<-C> I<path>, B<--configpath>=I<path>, B<--config-file>=I<path>
|
|
|
|
Use the specified path for locating the distributed configuration files.
|
|
Ignore the default directories (usually C</usr/share/spamassassin> or similar).
|
|
|
|
=item B<--siteconfigpath>=I<path>
|
|
|
|
Use the specified path for locating site-specific configuration files. Ignore
|
|
the default directories (usually C</etc/mail/spamassassin> or similar).
|
|
|
|
=item B<--cf='config line'>
|
|
|
|
Add additional lines of configuration directly from the command-line, parsed
|
|
after the configuration files are read. Multiple B<--cf> arguments can be
|
|
used, and each will be considered a separate line of configuration. For
|
|
example:
|
|
|
|
spamassassin -t --cf="body NEWRULE /text/" --cf="score NEWRULE 3.0"
|
|
|
|
=item B<--pre='config line'>
|
|
|
|
Add additional lines of .pre configuration directly from the command-line,
|
|
parsed before the configuration files are read. Multiple B<--pre> arguments
|
|
can be used, and each will be considered a separate line of configuration.
|
|
For example:
|
|
|
|
spamassassin -t --pre="loadplugin Mail::SpamAssassin::Plugin::Foobar"
|
|
|
|
=item B<-p> I<prefs>, B<--prefspath>=I<prefs>, B<--prefs-file>=I<prefs>
|
|
|
|
Read user score preferences from I<prefs> (usually C<$HOME/.spamassassin/user_prefs>).
|
|
|
|
=item B<--progress>
|
|
|
|
Prints a progress bar (to STDERR) showing the current progress. This option
|
|
will only be useful if you are redirecting STDOUT (and not STDERR). In the
|
|
case where no valid terminal is found this option will behave very much like
|
|
the --showdots option in other SpamAssassin programs.
|
|
|
|
=item B<-D> [I<area,...>], B<--debug> [I<area,...>]
|
|
|
|
Produce debugging output. If no areas are listed, all debugging information is
|
|
printed. Diagnostic output can also be enabled for each area individually;
|
|
I<area> is the area of the code to instrument. For example, to produce
|
|
diagnostic output on bayes, learn, and dns, use:
|
|
|
|
spamassassin -D bayes,learn,dns
|
|
|
|
Use an empty string (-D '') to indicate no areas when the next item on the
|
|
command line is a path, to prevent the path from being parsed as an area.
|
|
|
|
Higher priority informational messages that are suitable for logging in normal
|
|
circumstances are available with an area of "info".
|
|
|
|
For more information about which areas (also known as channels) are available,
|
|
please see the documentation at:
|
|
|
|
L<https://wiki.apache.org/spamassassin/DebugChannels>
|
|
|
|
=item B<-x>, B<--nocreate-prefs>
|
|
|
|
Disable creation of user preferences file.
|
|
|
|
=item B<--mbox>
|
|
|
|
Specify that the input message(s) are in mbox format. mbox is a standard
|
|
Unix message folder format.
|
|
|
|
=item B<--mbx>
|
|
|
|
Specify that the input message(s) are in UW .mbx format. mbx is
|
|
the mailbox format used within the University of Washington's IMAP
|
|
implementation; see C<https://en.wikipedia.org/wiki/UW_IMAP>.
|
|
|
|
=back
|
|
|
|
=head1 SEE ALSO
|
|
|
|
sa-learn(1)
|
|
spamd(1)
|
|
spamc(1)
|
|
Mail::SpamAssassin::Conf(3)
|
|
Mail::SpamAssassin(3)
|
|
|
|
=head1 PREREQUISITES
|
|
|
|
C<Mail::SpamAssassin>
|
|
|
|
=head1 BUGS
|
|
|
|
See E<lt>https://issues.apache.org/SpamAssassin/E<gt>
|
|
|
|
=head1 AUTHORS
|
|
|
|
The SpamAssassin(tm) Project E<lt>https://spamassassin.apache.org/E<gt>
|
|
|
|
=head1 COPYRIGHT
|
|
|
|
SpamAssassin is distributed under the Apache License, Version 2.0, as
|
|
described in the file C<LICENSE> included with the distribution.
|
|
|
|
=cut
|
|
|