sma
— Sendmail Log
Analyser
The sma
utility analyses sendmail log
entries and produces a summary of mail activity. sma
reads the input from file or from standard input and
writes the report to standard output or file.
sma
can be configured using command line
options or configuration file, or both. Command line options always override
the configuration file.
The available command line options are as follows:
-A
- Downcase all addresses. This is so that foo@bar.com is equivilant to
FOO@BAR.Com and Foo@Bar.com and they all get counted the same in the
counts. Usually one is interested in the user, not the format of the
address and since email addresses are case insensitive to MTAs, one may
want to make them case insensitive in
sma
-a
- Format the report as ASCII.
-b
color
- Set the background color of the HTML report as
color.
-C
string
- Set report header as string.
-D
date1,date2
- Process log entry only if the date is between date1
and date2. The format of the date is as follows:
[[[[[[cc]yy]mm]dd]HH]MM[.SS]]
where
- yy
- Year in abbreviated form (for years 1969-2068). The format
ccyymmddHHMM is also permitted, for
non-ambiguous years.
- mm
- Numeric month, a number from 1 to 12.
- dd
- Day, a number from 1 to 31.
- HH
- Hour, a number from 0 to 23.
- MM
- Minute, a number from 0 to 59.
- SS
- Second, a number from 0 to 61 (59 plus a maximum of two leap
seconds).
Everything but the minute is optional. The dates must be
separated using a colon, without any whitespace characters. If either of
the dates is missing, current date is used.
-c
- Print the copyright notice and exit.
-d
- Process only the domain portion of email address.
-f
file
- Read the configuration from file instead of the
default configuration file. The default configuration file is defined in
conf.h.
-F
- Do not use default configuration file even if it exists.
-H
name
- Use name as hostname.
-L
string
- Process only lines with syslog tag string
-h
- Print help message and exit.
-i
- Include the ASCII report as HTML comment (requires -w or -O html).
-n
- Do not report the time distribution.
-o
file
- Print the report as file. If not given, print to
stdout.
-O
format
- Format the report as format. Possible values for
format are ascii, html and clog.
-p
- Print current configuration to stdout.
-s
- Sort by transfers. Default is by number of messages.
-t
value
- Adjust the internal hash table size. Possible values for
value are normal, big and huge.
-q
- Do not print any warning messages.
-l
num
- Number of the top senders and recipients in the report. Default is
10.
-r
num
- Number of the top relay senders and recipients in the report. Default is
5.
-v
- Print some debugging information for each parsed line.
-w
- Format the report as HTML.
sma
configuration file consists of
keyword-value pairs. Available configuration file keywords and values are
listed below.
BgColor
RGB
- Set HTML report background color as RGB. Command
line option:
-b
BounceAddress
string
- Set error message bounce address as string.
CaseSensitive
value
- Set filter case sensitivity. Possible values are yes
or no. This options requires
USE_REGEXP
compile time definition.
DowncaseAddresses
value
- Set whether or not to make all addresses lower case, to make counts for
users more accurate. Possible values are yes or
no.
ClogFormat
string
- Formatting string for Custom Log format. format
consists of ordinary characters and various two-character sequencies which
are replaced with built-in variables as follows:
%U
- time in UNIX time format
%D
- time in form "Wed Jun 30 21:49:08 1993"
%y
- year, four digits
%m
- month, in digits
%M
- month, three letter English
%n
- minute
%s
- second
%d
- day
%h
- hour
%H
- hostname
%z
- size in bytes
%f
- envelope sender
%t
- envelope recipient
%F
- relay sender
%T
- relay recipient
%S
- status (1 = sent, 0 = error)
%i
- message id
%%
- %-character
\n
- newline
\t
- tab stop
\\
- single backslash
ClogSentOnly
value
- If value is set as yes , print
only sent messages (status = 1).
Comment
string
- Set report header as string. Command line option:
-C
Debug
value
- If value is set as yes , print
debugging information to stderr. Command line option:
-v
EndTime
date
- Process log entry only if the date is before date.
The format of the date is
YYYY/MM/DD-HH:MM:SS.
Command line option:
-D
EnvelopePairs
number
- Set the number of the top envelope pairs as
number.
EnvelopeRecipientFilter
string
- Set envelope recipient filter as string. If
sma
is compiled with
USE_REGEXP
, string can be
regular expression of syntax defined in re_format(7). Otherwise the
standard C library function strstr() is used. If the first character of
string is '!', filter is reversed.
EnvelopeRecipients
number
- Set the number of the top envelope recipients as
number. Command line option:
-l
EnvelopeSenderFilter
string
- Set envelope sender filter as string. See also
EnvelopeRecipientFilter
keyword.
EnvelopeSenders
number
- Set the number of the top envelope senders as
number. Command line option:
-l
FooterText
string
- Set report footer as string.
Format
string
- Set the output format as string. Possible values are
ascii , html and
clog. Command line options:
-a
, -w
and
-O
HashTables
string
- Adjust the internal hash table size. Possible values are
normal , big and
huge. It is also possible to specify a custom hash
table size by defining two values and separating them with a comma ','.
Command line option:
-t
HeaderText
string
- Set report header as string.
HostName
string
- Set the hostname as string. Normally, HostName is
taken from log files, or, in case of Sendmail for NT, from the compile
time define HOSTNAME. Command line option:
-H
IncludeAscii
value
- Include the ASCII report as HTML comment. Possible values are
yes or no. Command line
option:
-i
OutFile
file
- Print the report as file. Command line option:
-o
PictureALT
string
- If
PictureURL
is defined, set ALT text inside the
IMG HTML-tag as string.
PictureLink
string
- If
PictureURL
is defined, make the picture as link
pointing to string.
PictureParameters
string
- If
PictureURL
is defined, set additional IMG
parameters as string.
PictureURL
URL
- Include a picture with source URL as URL in HTML
report. The picture appears in a upper left corner of the page. See also
PictureParameters
,
PictureALT
and PictureLink
keywords.
PrintGeneralInfo
value
- Print the General Information section in report. Possible values are
yes or no.
PrintStatus
number
- Set the number of the top status messages as
number.
PrintRule
number
- Set the number of the top ruleset rejections as
number.
PrintTime
value
- Print the Time Distribution section in report. Possible values are
yes or no. Command line
option:
-n
RelayPairs
number
- Set the number of the top relay address pairs as
number.
RelayRecipientFilter
string
- Set relay recipient filter as string. See also
EnvelopeRecipientFilter
keyword.
RelayRecipients
number
- Set the number of the top relay recipients as
number. Command line option:
-r
RelaySenderFilter
string
- Set relay sender filter as string. See also
EnvelopeRecipientFilter
keyword.
RelaySenders
number
- Set the number of the top relay senders as number.
Command line option:
-r
ShowUsers
value
- If value is set as no ,
process only the domain portion of the email address. Command line option:
-d
Silent
value
- If value is set as yes , do
not print error messages. Command line option:
-q
Sorting
value
- Set the sort order as value. Possible values are
number or transfer. Command
line option:
-s
SyslogTag
string
- Process only lines with syslog tag string. Command
line option:
-L
StartTime
date
- Process log entry only if the date is after date.
The format of the date is
YYYY/MM/DD-HH:MM:SS.
Command line option:
-D
TbColor
RGB
- Set HTML report table corner color as RGB.
sma
can as an option use a configuration
file. It's default location can be configured using a compile time define
DEFAULT_CONF
in file conf.h. By default, it is
defined as ./sma.conf
Jarkko Turkulainen <jt@klake.org>
sma
takes the year from runtime year. It
knows nothing about the new year transitions in log files.
The documentation contains a lot of bad english.