#!/usr/bin/perl -w
-# $Id: t-prot,v 1.328 2014/09/22 14:27:35 jochen Exp $
+# $Id: t-prot,v 1.330 2015/03/26 08:59:50 jochen Exp $
require 5.006;
use strict;
use Fcntl qw(O_EXCL O_WRONLY O_CREAT);
use Getopt::Long qw(:config gnu_getopt no_ignore_case);
-use constant VER => '3.3';
+use constant VER => '3.4';
use constant REV => '';
-use constant REL => q$Revision: 1.328 $=~m/(\d+(?:\.\d+)+)/;
+use constant REL => q$Revision: 1.330 $=~m/(\d+(?:\.\d+)+)/;
# MTA expecting mail on STDIN
# (you might have to adjust this if using a different MTA)
use constant SENDMAIL => '/usr/sbin/sendmail -oi';
# help(): print help text and exit with appropriate exit code
sub help {
print "Usage: $0 [options]
- -A=DIRECTORY ad footer directory, treat ad footers as signature
+ -A DIRECTORY ad footer directory, treat ad footers as signature
-a remove ad footers; requires -A
--bigq[=n[,x]] remove all but x lines of quotes with more than n
lines; default is n=30 and x=10
--body input has no headers; does not work with --pgp-short;
multipart messages will not be detected
- -c[=n] merge multiple blank lines to n lines (default is 2)
+ -c[n] merge multiple blank lines to n lines (default is 2)
--check[=FLAGS] check various criteria, print error message and quit;
see man page for details
-d, --debug print notice to syslog when bouncing; requires -p
--ftr-ml enable aggressive mailing list footer matching; req. -L
--groupwise delete Novell Groupwise style TOFU
-h, --help show this short help and exit
- -i=INFILE file to be read; '-' for STDIN (default)
+ -i INFILE file to be read; '-' for STDIN (default)
-k try to fix \"Kammquotes\"
--kdiff=n max. length difference between wrapped lines; req. -k
--kmaxl=n max. line length for wrapped line; requires -k
--kminl=n min. line length for wrapped line; requires -k
- -L=DIRECTORY mailing list footer directory, treat mailing list
+ -L DIRECTORY mailing list footer directory, treat mailing list
footers as signature
-l delete mailing list footer; requires -L
--lax-security use unsafe writing method; USE ON YOUR OWN RISK!
-m delete MS style TOFU; careful: might be too aggressive
--max-lines=x maximum number of message lines
--ms-smart try to be smart with MS style TOFU; req. -Mmutt and -m
- -o=OUTFILE file to be written to; '-' for STDOUT (default)
- -P=MESSAGE user defined bounce message; requires -p
- -p[=ADDRESS] redirect to ADDRESS if no TOFU was found
+ -o OUTFILE file to be written to; '-' for STDOUT (default)
+ -P MESSAGE user defined bounce message; requires -p
+ -p [ADDRESS] redirect to ADDRESS if no TOFU was found
--pgp-move move pgp verification output to bottom; requires -Mmutt
--pgp-move-vrf move pgp output if verified and good; requires -Mmutt
--pgp-short hide non-relevant pgp key uids; requires -Mmutt
-r delete mail header lines
--reply squeeze multiple reply prefixes in subject line
- -S[=n] suppress signatures with more than n lines (default $maxsig)
+ -S[n] suppress signatures with more than n lines (default $maxsig)
-s delete signature
--sani sanitize some header fields
--sigsmax[=n] max number of sigs tolerated, no value for unlimited
-.\" $Id: t-prot.1,v 1.190 2014/08/19 07:40:02 jochen Exp $
+.\" $Id: t-prot.1,v 1.192 2015/03/26 08:59:50 jochen Exp $
.\"
-.TH T-PROT "1" "August 2014" "T-PROT"
+.TH T-PROT "1" "March 2015" "T-PROT"
.SH NAME
t-prot \- TOFU Protection - Display Filter for RFC 5322 messages
.SH SYNOPSIS
reject/bounce messages depending on t\-prot's result.
.SH INPUT/OUTPUT OPTIONS
.TP
-.BR "\-i" "=FILE"
+.BR "\-i" " FILE"
Defines an input file; default is '\-' i.e. STDIN.
.TP
-.BR "\-o" "=FILE"
+.BR "\-o" " FILE"
Defines the output file; default is STDOUT.
.TP
.B "\-\-body"
.sp
.IR NOTE :
This requires a directory with footer files to be given with option
-.BR "\-A" "=DIRECTORY".
+.BR "\-A" " DIRECTORY".
.TP
-.BR "\-A" "=DIRECTORY"
+.BR "\-A" " DIRECTORY"
"ad footer directory":
Defines the directory which contains the advertisement list footers (one
footer per file) which are to be tested when removing them with options
.sp
.IR NOTE :
This requires a directory with footer files to be given with option
-.BR "\-L" "=DIRECTORY".
+.BR "\-L" " DIRECTORY".
.B \-l
is not needed if
.B \-\-ftr\-ml
.sp
.IR NOTE :
This requires a directory with footer files to be given with option
-.BR "\-L" "=DIRECTORY".
+.BR "\-L" " DIRECTORY".
.TP
-.BR "\-L" "=DIRECTORY"
+.BR "\-L" " DIRECTORY"
"list footer directory":
Defines the directory which contains the mailing list footers (one footer
per file) which are to be tested when removing them with the options
Blocks of quotes with more than n lines will be shrunk to x lines.
Defaults are 30 for n and 10 for x.
.TP
-.BR "\-c" "[=n]"
+.BR "\-c" "[n]"
"compress":
Squeezes a sequence of blank lines to just n blank lines. n defaults to 2.
.TP
locales of the recent stable versions of those programs, earlier versions
might not work well with a recent version of t-prot.
.TP
-.BR "\-M, \-\-mua" =MUA
+.BR "\-M, \-\-mua" MUA
"mail user agent":
Turn on special treatment for some mail user agents. (Right now only
.BR mutt (1)
Subject lines with multiple reply prefixes (Re: and translations into other
languages) get squeezed to only one prefix.
.TP
-.BR "\-S" "[=n]"
+.BR "\-S" "[n]"
"suppression of overlong signatures":
Signatures are to be n lines (not including the one containing dash-dash-space)
or less. If there are more, it is probably not that spirited after all.
between mailing lists or with undetected signature attempts.
.SH DETECTION OPTIONS
.TP
-.BR "\-P" "=MESSAGE"
+.BR "\-P" " MESSAGE"
"user defined bounce message for picky delivery":
You may specify your own bounce message to be returned when we try to deliver
an email and bounce it because there is TOFU inside. See
.BR "\-p" .
.TP
-.BR "\-p" "[=ADDRESS]"
+.BR "\-p" " [ADDRESS]"
"picky delivery":
If we really find some TOFU, abort with exit code
.IR EX_UNAVAILABLE .
All of the documentation and software included in the t-prot releases
is copyrighted by Jochen Striepe (except when explicitly stated otherwise).
.PP
-Copyright \(co 2001-2014 Jochen Striepe. All rights reserved.
+Copyright \(co 2001-2015 Jochen Striepe. All rights reserved.
.PP
Redistribution and use, with or without modification, are permitted
provided that the following conditions are met: