network/exim: Added. exim is a sendmail replacement.

This commit is contained in:
Thomas Morper 2010-04-07 22:30:26 -05:00 committed by Robby Workman
parent 669ea352d9
commit ffd9716826
20 changed files with 2446 additions and 0 deletions

25
network/exim/README Normal file
View File

@ -0,0 +1,25 @@
Exim is a mail transfer agent (MTA) used on Unix-like operating systems.
It is freely available under the GNU GPL and it aims to be a general
and flexible mailer with extensive facilities for checking incoming e-mail.
Exim was orginally written by Philip Hazel for use in the University
of Cambridge Computing Services e-mail systems.
Before you can build Exim, you have to create an "exim" user and group:
# groupadd -g 222 exim
# useradd -d /var/spool/exim -g exim -s /bin/false -u 222 exim
The recommended uid/gid is 222, but others are fine if you prefer -
see http://slackbuilds.org/uid_gid.txt for other recommendations.
There's no "configure" script; instead Exim is configured by editing a well
documented Makefile, which is then included during the build process. The
provided "exim.Makefile" will build an all-purpose Exim daemon with almost
all of the features that will work on a standard Slackware system.
Exim can be integrated with other email tools such as Clamav, Spamassassin,
Bogofilter, and others available at Slackbuilds.org. You might also be
interested in the "exim-html" package, an extensive documentation for Exim.
WARNING: this package is intended as a drop-in replacement for Sendmail.
As a result, there are some inevitable filename conflicts between Sendmail
and Exim. REMOVE SENDMAIL BEFORE INSTALLING THIS PACKAGE!

View File

@ -0,0 +1,12 @@
#!/bin/sh
# Exim's spool directory
SPOOL=/var/spool/exim
# Check for spool and the tidydb utility
test -d $SPOOL -a -x /usr/sbin/exim_tidydb || exit
# Tidy up the contents of the hints databases
find $SPOOL/db -name '*.lockfile' -exec basename {} .lockfile \; \
| xargs -r -n 1 sudo -u exim /usr/sbin/exim_tidydb -t 7d $SPOOL \
> /dev/null

View File

@ -0,0 +1,8 @@
/var/log/exim/*.log {
missingok
notifempty
sharedscripts
postrotate
/usr/bin/pkill -HUP -u exim
endscript
}

View File

@ -0,0 +1,62 @@
#!/bin/sh
# /etc/rc.d/rc.exim - start/stop/restart the exim mail transfer agent.
#
# Thales A. Tsailas <ttsailas@enforcingit.com>
# Thomas Morper <thomas@beingboiled.info>
PIDFILE=/var/run/exim.pid
# the TIME option causes Exim to run as a daemon, starting a queue runner
# process at intervals specified by the given time value. (ie 5m, 1h etc).
TIME=15m
exim_start() {
echo "Starting exim..."
/usr/sbin/exim -bd ${TIME:+-q$TIME}
}
exim_stop() {
echo "Shutting down exim..."
killall exim
rm -f $PIDFILE
}
exim_reload() {
echo "Reloading exim configuration..."
if [ -f $PIDFILE ]; then
kill -HUP $(cat $PIDFILE)
fi
}
exim_status() {
if [ -f /var/run/exim.pid ]; then
echo "exim is running...";
else
echo "exim is not running...";
fi
}
# See how we were called.
case "$1" in
start)
exim_start
;;
stop)
exim_stop
;;
restart)
exim_stop
sleep 2
exim_start
;;
reload)
exim_reload
;;
status)
exim_status
;;
*)
echo $"Usage: $0 {start|stop|restart|reload|status}"
;;
esac

28
network/exim/doinst.sh Normal file
View File

@ -0,0 +1,28 @@
config() {
NEW="$1"
OLD="$(dirname $NEW)/$(basename $NEW .new)"
# If there's no config file by that name, mv it over:
if [ ! -r $OLD ]; then
mv $NEW $OLD
elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
# toss the redundant copy
rm $NEW
fi
# Otherwise, we leave the .new copy for the admin to consider...
}
preserve_perms() {
NEW="$1"
OLD="$(dirname ${NEW})/$(basename ${NEW} .new)"
if [ -e ${OLD} ]; then
cp -a ${OLD} ${NEW}.incoming
cat ${NEW} > ${NEW}.incoming
mv ${NEW}.incoming ${NEW}
fi
config ${NEW}
}
config etc/cron.daily/exim.new
config etc/logrotate.d/exim.new
preserve_perms etc/rc.d/rc.exim.new

1155
network/exim/exim.Makefile Normal file

File diff suppressed because it is too large Load Diff

116
network/exim/exim.SlackBuild Executable file
View File

@ -0,0 +1,116 @@
#!/bin/sh
# Slackware build script for Exim
# Written by Thomas Morper <thomas@beingboiled.info>
# Thanks to Thales A. Tsailas <ttsailas@enforcingit.com> and the SBo team
# for the previous version and the accompanying files.
# Thanks to Debian for the manpages.
PRGNAM=exim
VERSION=${VERSION:-4.71}
ARCH=${ARCH:-i486}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
set -e
# Check if the exim user and group exist. If not, then bail.
if [ "$(id -g exim 2> /dev/null)" != "222" -o "$(id -u exim 2> /dev/null)" != "222" ]; then
echo " You must have an 'exim' user and group to run this script."
echo " # groupadd -g 222 exim"
echo " # useradd -d /var/spool/exim -g exim -s /bin/false -u 222 exim"
exit 1
fi
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2
cd $PRGNAM-$VERSION
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
-exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
cat $CWD/exim.Makefile > Local/Makefile
cat exim_monitor/EDITME > Local/eximon.conf
make \
CFLAGS="$SLKCFLAGS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE" \
LIBDIRSUFFIX=$LIBDIRSUFFIX
make install DESTDIR=$PKG
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
# Ditch the symlink and move the binary to its final destination.
rm -f $PKG/usr/sbin/exim
mv $PKG/usr/sbin/exim-$VERSION-1 $PKG/usr/sbin/exim
# Additional symlinks provide compatibility with sendmail
mkdir -p $PKG/usr/lib # no LIBDIRSUFFIX here!
( cd $PKG/usr/lib; ln -s /usr/sbin/exim sendmail )
( cd $PKG/usr/sbin; ln -s /usr/sbin/exim sendmail )
# Nobody should use an unedited default config.
mv $PKG/etc/exim/exim.conf $PKG/etc/exim/exim.conf.example
mv $PKG/etc/exim/aliases $PKG/etc/exim/aliases.example
# Install accompanying scripts and configs.
mkdir -p $PKG/etc/{cron.daily,logrotate.d,rc.d}
install -m 0755 $CWD/contrib/rc.exim.new $PKG/etc/rc.d/rc.exim.new
install -m 0755 $CWD/contrib/exim.cron $PKG/etc/cron.daily/exim.new
install -m 0644 $CWD/contrib/exim.logrotate $PKG/etc/logrotate.d/exim.new
# Prepare log- and spool-directories.
mkdir -p $PKG/var/log/exim
mkdir -p -m 0750 $PKG/var/spool/exim/
mkdir -p -m 0750 $PKG/var/spool/exim/{db,input,msglog}
chown -R exim.exim $PKG/var/{log,spool}/exim
# Install the various manpages
mkdir -p $PKG/usr/man/man8
mv doc/exim.8 $PKG/usr/man/man8/
install -m 0644 $CWD/manpages/*.8 $PKG/usr/man/man8/
find $PKG/usr/man/man8 -type f -exec gzip -9 {} \;
( cd $PKG/usr/man/man8
ln -s exim_db.8.gz exim_dumpdb.8.gz
ln -s exim_db.8.gz exim_fixdb.8.gz
ln -s exim_db.8.gz exim_tidydb.8.gz
)
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
ABOUT ACKNOWLEDGMENTS CHANGES LICENCE NOTICE README* doc \
$PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

10
network/exim/exim.info Normal file
View File

@ -0,0 +1,10 @@
PRGNAM="exim"
VERSION="4.71"
HOMEPAGE="http://www.exim.org/"
DOWNLOAD="ftp://ftp.exim.org/pub/exim/exim4/exim-4.71.tar.bz2"
MD5SUM="f9c5a2d94b5bb132d06e2fff85bef75e"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
MAINTAINER="Thomas Morper"
EMAIL="thomas@beingboiled.info"
APPROVED="rworkman"

View File

@ -0,0 +1,74 @@
.\" Hey, EMACS: -*- nroff -*-
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH EXICYCLOG 8 "March 26, 2003"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
.\" .nh disable hyphenation
.\" .hy enable hyphenation
.\" .ad l left justify
.\" .ad b justify to both left and right margins
.\" .nf disable filling
.\" .fi enable filling
.\" .br insert line break
.\" .sp <n> insert n+1 empty lines
.\" for manpage-specific macros, see man(7)
.\" \(oqthis text is enclosed in single quotes\(cq
.\" \(lqthis text is enclosed in double quotes\(rq
.SH NAME
exicyclog \- Cycle exim's logfiles
.SH SYNOPSIS
.B eximcyclog
.SH DESCRIPTION
The
.B exicyclog
script can be used to cycle (rotate)
.I mainlog
and
.I rejectlog
files.
This is not necessary if only syslog is being used.
Some operating systems have their own standard mechanisms for log cycling,
and these can be used instead of
.B exicyclog
if preferred.
Each time
.B exicyclog
is run the file names get \(oqshuffled down\(cq by one.
If the main log file name is mainlog (the default) then when
.B exicyclog
is run mainlog becomes mainlog.01, the previous mainlog.01 becomes mainlog.02
and so on, up to a limit which is set in the script, and which defaults to 10.
Reject logs are handled similarly.
If no mainlog file exists, the script does nothing.
Files that \(oqdrop off\(cq the end are deleted.
All files with numbers greater than 01 are compressed, using a compression
command which is configured by the COMPRESS_COMMAND setting in
Local/Makefile.
It is usual to run \(lqexicyclog\(rq daily from a root \(lqcrontab\(rq entry
of the form
1 0 * * * su exim \-c /usr/exim/bin/exicyclog
assuming you have used the name \(oqexim\(cq for the Exim user.
You can run
.B exicyclog
as root if you wish, but there is no need.
.SH BUGS
This manual page needs a major re-work. If somebody knows better groff
than us and has more experience in writing manual pages, any patches
would be greatly appreciated.
.SH SEE ALSO
.BR exim (8)
.SH AUTHOR
This manual page was stitched together from spec.txt by
Andreas Metzler <ametzler at downhill.at.eu.org>,
for the Debian GNU/Linux system (but may be used by others).

View File

@ -0,0 +1,69 @@
.\" Hey, EMACS: -*- nroff -*-
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH EXIGREP 8 "March 26, 2003"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
.\" .nh disable hyphenation
.\" .hy enable hyphenation
.\" .ad l left justify
.\" .ad b justify to both left and right margins
.\" .nf disable filling
.\" .fi enable filling
.\" .br insert line break
.\" .sp <n> insert n+1 empty lines
.\" for manpage-specific macros, see man(7)
.\" \(oqthis text is enclosed in single quotes\(cq
.\" \(lqthis text is enclosed in double quotes\(rq
.SH NAME
EXIGREP \- Search Exim's main log
.SH SYNOPSIS
.B exigrep
.I [\-l] pattern [log file] ...
.SH DESCRIPTION
The
.B exigrep
utility is a Perl script that searches one or more main log files for
entries that match a given pattern.
When it finds a match, it extracts all the log entries for the relevant
message, not just those that match the pattern.
Thus,
.B exigrep
can extract complete log entries for a given message, or all mail for a given
user, or for a given host, for example.
The
.I \-l
flag means \(oqliteral\(cq, that is, treat all characters in the pattern as
standing for themselves.
Otherwise the pattern must be a Perl regular expression.
The pattern match is case-insensitive.
If no file names are given on the command line, the standard input is
read.
If the location of a
.B zcat
command is known from the definition of ZCAT_COMMAND in Local/Makefile,
.B exigrep
automatically passes any file whose
name ends in COMPRESS_SUFFIX through
.B zcat
as it searches it.
.SH BUGS
This manual page needs a major re-work. If somebody knows better groff
than us and has more experience in writing manual pages, any patches
would be greatly appreciated.
.SH SEE ALSO
.BR exim (8),
.BR perlre (1)
.SH AUTHOR
This manual page was stitched together from spec.txt by
Andreas Metzler <ametzler at downhill.at.eu.org>,
for the Debian GNU/Linux system (but may be used by others).

View File

@ -0,0 +1,79 @@
.\" Hey, EMACS: -*- nroff -*-
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH EXIM_CHECKACCESS 8 "March 26, 2003"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
.\" .nh disable hyphenation
.\" .hy enable hyphenation
.\" .ad l left justify
.\" .ad b justify to both left and right margins
.\" .nf disable filling
.\" .fi enable filling
.\" .br insert line break
.\" .sp <n> insert n+1 empty lines
.\" for manpage-specific macros, see man(7)
.\" \(oqthis text is enclosed in single quotes\(cq
.\" \(lqthis text is enclosed in double quotes\(rq
.SH NAME
exim_checkaccess \- Check address acceptance from given IP
.SH SYNOPSIS
.B exim_checkaccess
.I IP-address email@address [more Exim options]
.SH DESCRIPTION
.B Exim's
.I \-bh
command line argument allows you to run a fake SMTP session with debugging
output, in order to check what Exim is doing when it is applying policy
controls to incoming SMTP mail.
However, not everybody is sufficiently familiar with the SMTP protocol to
be able to make full use of \-bh, and sometimes you just want to answer the
question \(lqDoes this address have access?\(rq without bothering with any
further details.
The
.B exim_checkaccess
utility is a \(oqpackaged\(cq version of
.I \-bh.
It takes two arguments, an IP address and an email address:
exim_checkaccess 10.9.8.7 A.User@a.domain.example
The utility runs a call to
.B Exim
with the \-bh option, to test whether the given email address would be
accepted in a RCPT command in a TCP/IP connection from the host with the
given IP address.
The output of the utility is either the word \(oqaccepted\(cq, or the SMTP error
response, for example:
Rejected:
550 Relay not permitted
When running this test, the utility uses \(lq<>\(rq as the envelope sender
address for the MAIL command, but you can change this by providing additional
options. These are passed directly to the Exim command.
For example, to specify that the test is to be run with the sender address
\(lqhimself@there.example\(rq you can use:
exim_checkaccess 10.9.8.7 A.User@a.domain.example \\
\-f himself@there.example
Note that these additional Exim command line items must be given after the
two mandatory arguments.
.SH BUGS
This manual page needs a major re-work. If somebody knows better groff
than us and has more experience in writing manual pages, any patches
would be greatly appreciated.
.SH SEE ALSO
.BR exim (8)
.SH AUTHOR
This manual page was stitched together from spec.txt by
Andreas Metzler <ametzler at downhill.at.eu.org>,
for the Debian GNU/Linux system (but may be used by others).

View File

@ -0,0 +1,168 @@
.\" Hey, EMACS: -*- nroff -*-
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH EXIM_DB 8 "March 26, 2003"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
.\" .nh disable hyphenation
.\" .hy enable hyphenation
.\" .ad l left justify
.\" .ad b justify to both left and right margins
.\" .nf disable filling
.\" .fi enable filling
.\" .br insert line break
.\" .sp <n> insert n+1 empty lines
.\" for manpage-specific macros, see man(7)
.\" \(oqthis text is enclosed in single quotes\(cq
.\" \(lqthis text is enclosed in double quotes\(rq
.SH NAME
exim_db \- Manage Exim's hint databases (exim_dumpdb, exim_fixdb, exim_tidydb)
.SH SYNOPSIS
.B exim_dumpdb
.I spooldir database
.br
.B exim_fixdb
.I spooldir database
.br
.B exim_tidydb
.I [\-f] [\-t time] spooldir database
.SH DESCRIPTION
Three utility programs are provided for maintaining the DBM files that
Exim uses to contain its delivery hint information.
Each program requires two arguments.
The first specifies the name of Exim's spool directory, and the second is
the name of the database it is to operate on.
These are as follows:
.TP
.B retry
the database of retry information
.TP
.B wait\-<transport name>
databases of information about messages waiting for remote hosts
.TP
.B misc
other hints data (for example, for serializing ETRN runs)
.P
The entire contents of a database are written to the standard output by the
.B exim_dumpdb
program, which has no options or arguments other than the spool
and database names.
For example, to dump the retry database:
.I exim_dumpdb /var/spool/exim retry
Two lines of output are produced for each entry:
.nf
T:mail.ref.example:192.168.242.242 146 77 Connection refused
31-Oct-1995 12:00:12 02-Nov-1995 12:21:39 02-Nov-1995 20:21:39 *
.fi
The first item on the first line is the key of the record.
It starts with one of the letters R, or T, depending on whether it refers
to a routing or transport retry.
For a local delivery, the next part is the local address; for a remote
delivery it is the name of the remote host, followed by its failing IP
address (unless \(lqno_retry_include_ip_address\(rq is set on the smtp
transport).
Then there follows an error code, an additional error code, and a
textual description of the error.
The three times on the second line are the time of first failure, the time of
the last delivery attempt, and the computed time for the next attempt.
The line ends with an asterisk if the cutoff time for the last retry rule
has been exceeded.
Each output line from
.B exim_dumpdb
for the
.I wait\-xxx
databases consists of a host name followed by a list of ids for messages
that are or were waiting to be delivered to that host.
If there are a very large number for any one host, continuation records,
with a sequence number added to the host name, may be seen.
The data in these records is often out of date, because a message may be
routed to several alternative hosts, and Exim makes no effort to keep
cross-references.
The
.B exim_tidydb
utility program is used to tidy up the contents of the hints databases.
If run with no options, it removes all records from a database that are
more than 30 days old.
The cutoff date can be altered by means of the \-t option, which must be
followed by a time.
For example, to remove all records older than a week from the retry
database:
.I exim_tidydb \-t 7d /var/spool/exim retry
Both the
.I wait\-xxx
and
.I retry
databases contain items that involve message ids.
In the former these appear as data in records keyed by host - they were
messages that were waiting for that host - and in the latter they are the
keys for retry information for messages that have suffered certain types
of error.
When \(lqexim_tidydb\(rq is run, a check is made to ensure that message ids in
database records are those of messages that are still on the queue.
Message ids for messages that no longer exist are removed from \(lqwait\-\(rqxxx
records, and if this leaves any records empty, they are deleted.
For the \(lqretry\(rq database, records whose keys are non-existent message
ids are removed.
The
.B exim_tidydb
utility outputs comments on the standard output whenever it removes
information from the database.
Removing records from a DBM file does not normally make the file smaller, but
all the common DBM libraries are able to re-use the space that is released.
It is therefore suggested that
.B exim_tidydb
be run periodically on all the hints databases, but at a quiet time of day,
because it requires a database to be locked (and therefore inaccessible to
Exim) while it does its work.
The
.B exim_fixdb
program is a utility for interactively modifying databases.
Its main use is for testing Exim, but it might also be occasionally useful
for getting round problems in a live system.
It has no options, and its interface is somewhat crude.
On entry, it prompts for input with a right angle-bracket.
A key of a database record can then be entered, and the data for that
record is displayed.
If \(oqd\(cq is typed at the next prompt, the entire record is deleted.
For all except the
.I retry
database, that is the only operation that can be carried out.
For the
.I retry
database, each field is output preceded by a number, and data for individual
fields can be changed by typing the field number followed by new data, for
example:
> 4 951102:1000
resets the time of the next delivery attempt.
Time values are given as a sequence of digit pairs for year, month, day,
hour, and minute.
Colons can be used as optional separators.
.SH BUGS
This manual page needs a major re-work. If somebody knows better groff
than us and has more experience in writing manual pages, any patches
would be greatly appreciated.
.SH SEE ALSO
.BR exim (8)
.SH AUTHOR
This manual page was stitched together from spec.txt by
Andreas Metzler <ametzler at downhill.at.eu.org>,
for the Debian GNU/Linux system (but may be used by others).

View File

@ -0,0 +1,104 @@
.\" Hey, EMACS: -*- nroff -*-
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH EXIM_DBMBUILD 8 "March 26, 2003"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
.\" .nh disable hyphenation
.\" .hy enable hyphenation
.\" .ad l left justify
.\" .ad b justify to both left and right margins
.\" .nf disable filling
.\" .fi enable filling
.\" .br insert line break
.\" .sp <n> insert n+1 empty lines
.\" for manpage-specific macros, see man(7)
.\" \(oqthis text is enclosed in single quotes\(cq
.\" \(lqthis text is enclosed in double quotes\(rq
.SH NAME
exim_dbmbuild \- Build a DBM file.
.SH SYNOPSIS
.B exim_dbmbuild
.I [\-nolc] [\-nozero] [\-noduperr] [\-nowarn] inputfile|\- outputfile
.SH DESCRIPTION
The
.B exim_dbmbuild
program reads an input file containing keys and data in
the format used by the
.I lsearch
lookup (see section 9.1).
It writes a DBM file using the lower-cased alias names as keys and the
remainder of the information as data.
The lower-casing can be prevented by calling the program with the
.I \-nolc
option.
A terminating zero is included as part of the key string.
This is expected by the dbm lookup type.
However, if the option
.I \-nozero
is given,
.B exim_dbmbuild
creates files without terminating zeroes in either the key strings or the
data strings.
The
.I dbmnz
lookup type can be used with such files.
The program requires two arguments: the name of the input file (which can
be a single hyphen to indicate the standard input), and the name of the
output file.
It creates the output under a temporary name, and then renames it if all
went well.
If the native DB interface is in use (USE_DB is set in a compile-time
configuration file - this is common in free versions of Unix) the two file
names must be different, because in this mode the Berkeley DB functions
create a single output file using exactly the name given.
For example,
exim_dbmbuild /etc/aliases /etc/aliases.db
reads the system alias file and creates a DBM version of it in
/etc/aliases.db.
In systems that use the
.I ndbm
routines (mostly proprietary versions of Unix), two files are used, with the
suffixes .dir and .pag.
In this environment, the suffixes are added to the second argument of
.B exim_dbmbuild,
so it can be the same as the first.
This is also the case when the Berkeley functions are used in
compatibility mode (though this is not recommended), because in that case
it adds a .db suffix to the file name.
If a duplicate key is encountered, the program outputs a warning, and when
it finishes, its return code is 1 rather than zero, unless the
.I \-noduperr
option is used.
By default, only the first of a set of duplicates is used - this makes it
compatible with lsearch lookups.
There is an option
.I \-lastdup
which causes it to use the data for the last duplicate instead.
There is also an option
.I \-nowarn,
which stops it listing duplicate keys to \(lqstderr\(rq.
For other errors, where it doesn't actually make a new file, the return
code is 2.
.SH BUGS
This manual page needs a major re-work. If somebody knows better groff
than us and has more experience in writing manual pages, any patches
would be greatly appreciated.
.SH SEE ALSO
.BR exim (8)
.SH AUTHOR
This manual page was stitched together from spec.txt by
Andreas Metzler <ametzler at downhill.at.eu.org>,
for the Debian GNU/Linux system (but may be used by others).

View File

@ -0,0 +1,136 @@
.\" Hey, EMACS: -*- nroff -*-
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH EXIM_LOCK 8 "March 26, 2003"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
.\" .nh disable hyphenation
.\" .hy enable hyphenation
.\" .ad l left justify
.\" .ad b justify to both left and right margins
.\" .nf disable filling
.\" .fi enable filling
.\" .br insert line break
.\" .sp <n> insert n+1 empty lines
.\" for manpage-specific macros, see man(7)
.\" \(oqthis text is enclosed in single quotes\(cq
.\" \(lqthis text is enclosed in double quotes\(rq
.SH NAME
exim_lock \- Mailbox maintenance
.SH SYNOPSIS
.B exim_lock
.RI [ options ] mailbox-file
.SH DESCRIPTION
The
.B exim_lock
utility locks a mailbox file using the same algorithm as Exim.
For a discussion of locking issues, see section 25.2.
.B exim_lock
can be used to prevent any modification of a mailbox by Exim or a user
agent while investigating a problem.
The utility requires the name of the file as its first argument.
If the locking is successful, the second argument is run as a command
(using C's \(lqsystem()\(rq function); if there is no second argument, the value
of the SHELL environment variable is used; if this is unset or empty,
/bin/sh is run.
When the command finishes, the mailbox is unlocked and the utility ends.
The following options are available:
.TP
.I \-fcntl
Use \(lqfcntl()\(rq locking on the open mailbox.
.TP
.I \-interval
This must be followed by a number, which is a number of seconds; it
sets the interval to sleep between retries (default 3).
.TP
.I \-lockfile
Create a lock file before opening the mailbox.
.TP
.I \-mbx
Lock the mailbox using MBX rules.
.TP
.I \-q
Suppress verification output.
.TP
.I \-retries
This must be followed by a number; it sets the number of times to try
to get the lock (default 10).
.TP
.I \-timeout
This must be followed by a number, which is a number of seconds; it
sets a timeout to be used with a blocking \(lqfcntl()\(rq lock.
If it is not set (the default), a non-blocking call is used.
.TP
.I \-v
Generate verbose output.
If none of
.I \-fcntl, \-lockfile
or
.I \-mbx
are given, the default is to create a lock file and also use \(lqfcntl()\(rq locking
on the mailbox, which is the same as
.B Exim's
default.
The use of
.I \-fcntl
requires that the file be writable; the use
of
.I \-lockfile
requires that the directory containing the file be writable.
Locking by lock file does not last for ever; Exim assumes that a lock file
is expired if it is more than 30 minutes old.
The
.I \-mbx
option is mutually exclusive with
.I \-fcntl.
It causes a shared lock to be taken out on the open mailbox, and an
exclusive lock on the file /tmp/.n.m where n and m are the device number
and inode number of the mailbox file.
When the locking is released, if an exclusive lock can be obtained for the
mailbox, the file in /tmp is deleted.
The default output contains verification of the locking that takes place.
The
.I \-v
option causes some additional information to be given.
The
.I \-q
option suppresses all output except error messages.
.PP
A command such as
exim_lock /var/spool/mail/spqr
runs an interactive shell while the file is locked, whereas
exim_lock \-q /var/spool/mail/spqr <<End
<some commands>
End
runs a specific non-interactive sequence of commands while the file is
locked, suppressing all verification output.
A single command can be run by a command such as
exim_lock \-q /var/spool/mail/spqr \
"cp /var/spool/mail/spqr /some/where"
Note that if a command is supplied, it must be entirely contained within
the second argument - hence the quotes.
.SH BUGS
This manual page needs a major re-work. If somebody knows better groff
than us and has more experience in writing manual pages, any patches
would be greatly appreciated.
.SH SEE ALSO
.BR exim (8)
.SH AUTHOR
This manual page was stitched together from spec.txt by
Andreas Metzler <ametzler at downhill.at.eu.org>,
for the Debian GNU/Linux system (but may be used by others).

View File

@ -0,0 +1,49 @@
.\" Hey, EMACS: -*- nroff -*-
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH EXIMON 8 "March 26, 2003"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
.\" .nh disable hyphenation
.\" .hy enable hyphenation
.\" .ad l left justify
.\" .ad b justify to both left and right margins
.\" .nf disable filling
.\" .fi enable filling
.\" .br insert line break
.\" .sp <n> insert n+1 empty lines
.\" for manpage-specific macros, see man(7)
.\" \(oqthis text is enclosed in single quotes\(cq
.\" \(lqthis text is enclosed in double quotes\(rq
.SH NAME
eximon \- Monitor Exim
.SH SYNOPSIS
.B eximon
.SH DESCRIPTION
The Exim monitor is an application which displays in an X window information
about the state of
.B Exim's
queue and what
.B Exim is doing.
An admin user can perform certain operations on messages from this GUI
interface; however all such facilities are also available from the command
line, and indeed, the monitor itself makes use of the command line to
perform any actions requested.
.SH BUGS
This manual page needs a major re-work. If somebody knows better groff
than us and has more experience in writing manual pages, any patches
would be greatly appreciated.
.SH SEE ALSO
.BR exim (8).
Eximon is documented extensivly in the
.B specification of the exim mail transfer agent.
.SH AUTHOR
This manual page was stitched together from spec.txt by
Andreas Metzler <ametzler at downhill.at.eu.org>,
for the Debian GNU/Linux system (but may be used by others).

View File

@ -0,0 +1,72 @@
.\" Hey, EMACS: -*- nroff -*-
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH EXINEXT 8 "March 26, 2003"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
.\" .nh disable hyphenation
.\" .hy enable hyphenation
.\" .ad l left justify
.\" .ad b justify to both left and right margins
.\" .nf disable filling
.\" .fi enable filling
.\" .br insert line break
.\" .sp <n> insert n+1 empty lines
.\" for manpage-specific macros, see man(7)
.\" \(oqthis text is enclosed in single quotes\(cq
.\" \(lqthis text is enclosed in double quotes\(rq
.SH NAME
exinext \- Finding individual retry times
.SH SYNOPSIS
.B exinext
.I address|message-id
.SH DESCRIPTION
A utility called
.B exinext
(mostly a Perl script) provides the ability to fish specific information
out of the retry database.
Given a mail domain (or a complete address), it looks up the hosts for
that domain, and outputs any retry information for the hosts or for the
domain.
At present, the retry information is obtained by running
.B exim_dumpdb
(see below) and processing the output.
For example:
exinext piglet@milne.fict.example
kanga.milne.fict.example:192.168.8.1 error 146: Connection refused
first failed: 21-Feb-1996 14:57:34
last tried: 21-Feb-1996 14:57:34
next try at: 21-Feb-1996 15:02:34
roo.milne.fict.example:192.168.8.3 error 146: Connection refused
first failed: 20-Jan-1996 13:12:08
last tried: 21-Feb-1996 11:42:03
next try at: 21-Feb-1996 19:42:03
past final cutoff time
You can also give
.B exinext
a local part, without a domain, and it will give any retry information for
that local part in your default domain.
A message id can be used to obtain retry information pertaining to a
specific message.
This exists only when an attempt to deliver a message to a remote host
suffers a message-specific error (see section 42.2).
.B exinext
is not particularly efficient, but then it isn't expected to be run very often.
.SH BUGS
This manual page needs a major re-work. If somebody knows better groff
than us and has more experience in writing manual pages, any patches
would be greatly appreciated.
.SH SEE ALSO
.BR exim (8)
.SH AUTHOR
This manual page was stitched together from spec.txt by
Andreas Metzler <ametzler at downhill.at.eu.org>,
for the Debian GNU/Linux system (but may be used by others).

View File

@ -0,0 +1,86 @@
.\" Hey, EMACS: -*- nroff -*-
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH EXIQGREP 8 "March 26, 2003"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
.\" .nh disable hyphenation
.\" .hy enable hyphenation
.\" .ad l left justify
.\" .ad b justify to both left and right margins
.\" .nf disable filling
.\" .fi enable filling
.\" .br insert line break
.\" .sp <n> insert n+1 empty lines
.\" for manpage-specific macros, see man(7)
.\" \(oqthis text is enclosed in single quotes\(cq
.\" \(lqthis text is enclosed in double quotes\(rq
.SH NAME
exiqgrep \- Search in the exim queue
.SH SYNOPSIS
.B exiqgrep
.I [\-a] [\-c]
.SH DESCRIPTION
The
.B exiqgrep
utility is a Perl script which offers possibilities to grep in the
exim queue output. Unlike exiqsumm, it invokes exim \-bpu itself and
does not need to be invoked in a pipe.
.SH OPTIONS
.TP 10
\fB\-h\fR
Print help
.TP
\fB\-f <regexp>\fR
Match sender address (field is \(lq< >\(rq wrapped)
.TP
\fB\-r <regexp>\fR
Match recipient address
.TP
\fB\-s <regexp>\fR
Match against the site field from long output
.TP
\fB\-y <seconds>\fR
Message younger than
.TP
\fB\-o <seconds>\fR
Message older than
.TP
\fB\-z\fR
Frozen messages only (exclude non-frozen)
.TP
\fB\-x\fR
Non-frozen messages only (exclude frozen)
.TP
\fB\-c\fR
Display match count
.TP
\fB\-l\fR
Long Format [Default]
.TP
\fB\-i\fR
Message IDs only
.TP
\fB\-b\fR
Brief Format
.TP
\fB\-R\fR
Reverse order
.SH BUGS
This manual page needs a major re-work. If somebody knows better groff
than us and has more experience in writing manual pages, any patches
would be greatly appreciated.
.SH SEE ALSO
.BR exim (8)
.SH AUTHOR
This manual page was stitched together from the source code by Marc
Haber <mh+debian\-packages@zugschlus.de>, using the exiqsumm man page by
Andreas Metzler <ametzler at downhill.at.eu.org>,
for the Debian GNU/Linux system (but may be used by others).

View File

@ -0,0 +1,73 @@
.\" Hey, EMACS: -*- nroff -*-
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH EXIQSUMM 8 "March 26, 2003"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
.\" .nh disable hyphenation
.\" .hy enable hyphenation
.\" .ad l left justify
.\" .ad b justify to both left and right margins
.\" .nf disable filling
.\" .fi enable filling
.\" .br insert line break
.\" .sp <n> insert n+1 empty lines
.\" for manpage-specific macros, see man(7)
.\" \(oqthis text is enclosed in single quotes\(cq
.\" \(lqthis text is enclosed in double quotes\(rq
.SH NAME
exiqsumm \- Summarising the queue
.SH SYNOPSIS
.B exiqsumm
.I [\-a] [\-c]
.SH DESCRIPTION
The
.B exiqsumm
utility is a Perl script which reads the output of
.I exim \-bp
and produces a summary of the messages on the queue.
Thus, you use it by running a command such as
exim \-bp | exiqsumm
The output consists of one line for each domain that has messages waiting
for it, as in the following example:
3 2322 74m 66m msn.com.example
This lists the number of messages for the domain, their total volume, and
the length of time that the oldest and the newest messages have been
waiting.
By default the output is sorted on the domain name, but
.B exiqsumm
has the options
.I \-a
and
.I \-c,
which cause the output to be sorted by oldest message and by count of
messages, respectively.
The output of
.I exim \-bp
contains the original addresses in the message, so this also applies to
the output from
.B exiqsumm.
No domains from addresses generated by aliasing or forwarding are included
(unless the \(lqone_time\(rq option of the redirect router has been used to
convert them into \(oqtop level\(cq addresses).
.SH BUGS
This manual page needs a major re-work. If somebody knows better groff
than us and has more experience in writing manual pages, any patches
would be greatly appreciated.
.SH SEE ALSO
.BR exim (8)
.SH AUTHOR
This manual page was stitched together from spec.txt by
Andreas Metzler <ametzler at downhill.at.eu.org>,
for the Debian GNU/Linux system (but may be used by others).

View File

@ -0,0 +1,101 @@
.\" Hey, EMACS: -*- nroff -*-
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH EXIWHAT 8 "March 26, 2003"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
.\" .nh disable hyphenation
.\" .hy enable hyphenation
.\" .ad l left justify
.\" .ad b justify to both left and right margins
.\" .nf disable filling
.\" .fi enable filling
.\" .br insert line break
.\" .sp <n> insert n+1 empty lines
.\" for manpage-specific macros, see man(7)
.\" \(oqthis text is enclosed in single quotes\(cq
.\" \(lqthis text is enclosed in double quotes\(rq
.SH NAME
exiwhat \- Finding out what Exim processes are doing
.SH SYNOPSIS
.B exiwhat
.SH DESCRIPTION
On operating systems that can restart a system call after receiving a
signal (most modern OS), an
.B Exim
process responds to the SIGUSR1 signal by writing a line describing what
it is doing to the file exim\-process.info in the Exim spool directory.
The
.B exiwhat
script sends the signal to all
.B Exim
processes it can find, having first emptied the file.
It then waits for one second to allow the
.B Exim
processes to react before displaying the results.
In order to run
.B exiwhat
successfully you have to have sufficient privilege to send the signal to
the
.B Exim
processes, so it is normally run as root.
Unfortunately, the
.B ps
command which
.B exiwhat
uses to find
.B Exim
processes varies in different operating systems.
Not only are different options used, but the format of the output is
different.
For this reason, there are some system configuration options that configure
exactly how
.B exiwhat
works.
If it doesn't seem to be working for you, check the following compile-time
options:
.TP
.I EXIWHAT_PS_CMD
the command for running \(lqps\(rq
.TP
.I EXIWHAT_PS_ARG
the argument for \(lqps\(rq
.TP
.I EXIWHAT_EGREP_ARG
the argument for \(lqegrep\(rq to select from \(lqps\(rq output
.TP
.I EXIWHAT_KILL_ARG
the argument for the \(lqkill\(rq command
.PP
An example of typical output from
.B exiwhat
is
.nf
164 daemon: -q1h, listening on port 25
10483 running queue: waiting for 0tAycK-0002ij-00 (10492)
10492 delivering 0tAycK-0002ij-00 to mail.ref.example [10.19.42.42]
(editor@ref.example)
10592 handling incoming call from [192.168.243.242]
10628 accepting a local non-SMTP message
.fi
The first number in the output line is the process number.
The third line has been split here, in order to fit it on the page.
.SH BUGS
This manual page needs a major re-work. If somebody knows better groff
than us and has more experience in writing manual pages, any patches
would be greatly appreciated.
.SH SEE ALSO
.BR exim (8)
.SH AUTHOR
This manual page was stitched together from spec.txt by
Andreas Metzler <ametzler at downhill.at.eu.org>,
for the Debian GNU/Linux system (but may be used by others).

19
network/exim/slack-desc Normal file
View File

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. You must
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|
exim: Exim (the Exim mail transfer agent)
exim:
exim: Exim is a mail transfer agent (MTA) used on Unix-like operating
exim: systems. It is freely available under the GNU GPL and it aims to be a
exim: general and flexible mailer with extensive facilities for checking
exim: incoming e-mail. Exim was written by Philip Hazel for use in the
exim: University of Cambridge Computing Service's e-mail systems.
exim:
exim: Homepage: http://www.exim.org/
exim:
exim: