.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "Mail::SpamAssassin::Plugin::DCC 3" .TH Mail::SpamAssassin::Plugin::DCC 3 2026-07-23 "perl v5.42.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAME Mail::SpamAssassin::Plugin::DCC \- perform DCC check of messages .SH SYNOPSIS .IX Header "SYNOPSIS" .Vb 1 \& loadplugin Mail::SpamAssassin::Plugin::DCC \& \& full DCC_CHECK eval:check_dcc() \& full DCC_CHECK_50_79 eval:check_dcc_reputation_range(\*(Aq50\*(Aq,\*(Aq79\*(Aq) .Ve .SH DESCRIPTION .IX Header "DESCRIPTION" The DCC or Distributed Checksum Clearinghouse is a system of servers collecting and counting checksums of millions of mail messages. The counts can be used by SpamAssassin to detect and filter spam. .PP See https://www.dcc\-servers.net/dcc/ for more information about DCC. .PP Note that DCC is disabled by default in \f(CW\*(C`v310.pre\*(C'\fR because its use requires software that is not distributed with SpamAssassin and that has license restrictions for certain commercial uses. See the DCC license at https://www.dcc\-servers.net/dcc/LICENSE for details. .PP Enable it by uncommenting the "loadplugin Mail::SpamAssassin::Plugin::DCC" confdir/v310.pre or by adding this line to your local.pre. It might also be necessary to install a DCC package, port, rpm, or equivalent from your operating system distributor or a tarball from the primary DCC source at https://www.dcc\-servers.net/dcc/#download See also https://www.dcc\-servers.net/dcc/INSTALL.html .SH TAGS .IX Header "TAGS" The following tags are added to the set, available for use in reports, header fields, other plugins, etc.: .PP .Vb 4 \& _DCCB_ DCC server ID in X\-DCC\-*\-Metrics header field name \& _DCCR_ X\-DCC\-*\-Metrics header field body \& _DCCREP_ DCC Reputation or percent bulk mail (0..100) from \& commercial DCC software .Ve .SH "USER SETTINGS" .IX Header "USER SETTINGS" .IP "use_dcc (0|1) (default: 1)" 4 .IX Item "use_dcc (0|1) (default: 1)" Whether to use DCC, if it is available. .IP "use_dcc_rep (0|1) (default: 1)" 4 .IX Item "use_dcc_rep (0|1) (default: 1)" Whether to use the commercial DCC Reputation feature, if it is available. Note that reputation data is free for all starting from DCC 2.x version, where it\*(Aqs automatically used. .IP "dcc_body_max NUMBER" 4 .IX Item "dcc_body_max NUMBER" .PD 0 .IP "dcc_fuz1_max NUMBER" 4 .IX Item "dcc_fuz1_max NUMBER" .IP "dcc_fuz2_max NUMBER" 4 .IX Item "dcc_fuz2_max NUMBER" .PD Sets how often a message\*(Aqs body/fuz1/fuz2 checksum must have been reported to the DCC server before SpamAssassin will consider the DCC check hit. \&\f(CW999999\fR is DCC\*(Aqs MANY count. .Sp The default is \f(CW999999\fR for all these options. .IP "dcc_rep_percent NUMBER" 4 .IX Item "dcc_rep_percent NUMBER" Only the commercial DCC software provides DCC Reputations (but starting from DCC 2.x version it is available for all). A DCC Reputation is the percentage of bulk mail received from the last untrusted relay in the path taken by a mail message as measured by all commercial DCC installations. See http://www.rhyolite.com/dcc/reputations.html You \f(CW\*(C`must\*(C'\fR whitelist your trusted relays or MX servers with MX or MXDCC lines in /var/dcc/whiteclnt as described in the main DCC man page to avoid seeing your own MX servers as sources of bulk mail. See https://www.dcc\-servers.net/dcc/dcc\-tree/dcc.html#White\-and\-Blacklists The default is \f(CW90\fR. .SH "ADMINISTRATOR SETTINGS" .IX Header "ADMINISTRATOR SETTINGS" .IP "dcc_timeout n (default: 5)" 4 .IX Item "dcc_timeout n (default: 5)" How many seconds you wait for DCC to complete, before scanning continues without the DCC results. A numeric value is optionally suffixed by a time unit (s, m, h, d, w, indicating seconds (default), minutes, hours, days, weeks). .IP "dcc_home STRING" 4 .IX Item "dcc_home STRING" This option tells SpamAssassin where to find the dcc homedir. If not specified, try to use the locally configured directory from the \f(CW\*(C`cdcc homedir\*(C'\fR command. Try /var/dcc if that command fails. .IP "dcc_dccifd_path STRING" 4 .IX Item "dcc_dccifd_path STRING" This option tells SpamAssassin where to find the dccifd socket instead of a local Unix socket named \f(CW\*(C`dccifd\*(C'\fR in the \f(CW\*(C`dcc_home\*(C'\fR directory. If a socket is specified or found, use it instead of \f(CW\*(C`dccproc\*(C'\fR. .Sp If specified, \f(CW\*(C`dcc_dccifd_path\*(C'\fR is the absolute path of local Unix socket or an INET socket specified as \f(CW\*(C`[Host]:Port\*(C'\fR or \f(CW\*(C`Host:Port\*(C'\fR. Host can be an IPv4 or IPv6 address or a host name Port is a TCP port number. The brackets are required for an IPv6 address. .Sp The default is \f(CW\*(C`undef\*(C'\fR. .IP "dcc_path STRING" 4 .IX Item "dcc_path STRING" Where to find the \f(CW\*(C`dccproc\*(C'\fR client program instead of relying on SpamAssassin to find it in the current PATH or \f(CW\*(C`dcc_home/bin\*(C'\fR. This must often be set, because the current PATH is cleared by \fItaint mode\fR in the Perl interpreter, .Sp If a \f(CW\*(C`dccifd\*(C'\fR socket is found in \f(CW\*(C`dcc_home\*(C'\fR or specified explicitly with \f(CW\*(C`dcc_dccifd_path\*(C'\fR, use the \f(CWdccifd(8)\fR interface instead of \f(CW\*(C`dccproc\*(C'\fR. .Sp The default is \f(CW\*(C`undef\*(C'\fR. .IP "dcc_options options" 4 .IX Item "dcc_options options" Specify additional options to the \fBdccproc\fR\|(8) command. Only characters in the range [0\-9A\-Za\-z ,._/\-] are allowed for security reasons. .Sp The default is \f(CW\*(C`undef\*(C'\fR. .IP "dccifd_options options" 4 .IX Item "dccifd_options options" Specify additional options to send to the dccifd daemon with the ASCII protocol described on the \fBdccifd\fR\|(8) man page. Only characters in the range [0\-9A\-Za\-z ,._/\-] are allowed for security reasons. .Sp The default is \f(CW\*(C`undef\*(C'\fR. .IP "dcc_learn_score n (default: undef)" 4 .IX Item "dcc_learn_score n (default: undef)" Report messages with total scores this much larger than the SpamAssassin spam threshold to DCC as spam.