NAME¶
tmail - Mail Delivery Module
SYNOPSIS¶
tmail [-b format] [-D] [-f from_name] [-I inbox_specifier]
user[+folder] ...
DESCRIPTION¶
tmail delivers mail to a user's INBOX or a designated folder.
tmail may be configured as a drop-in replacement for
binmail(1),
mail.local(1) or any program intended for use for mail delivery by a
mail delivery program such as
sendmail(8).
tmail is intended to be used for direct delivery by the mailer daemon;
dmail(1) is the preferred tool for user applications, e.g. a mail
delivery filter such as
procmail(1). If
tmail is used for
a user application, then the calling program must be aware of the restrictions
noted below.
When
tmail exits, it returns exit status values to enable the mail
delivery program to determine whether a message was delivered successfully or
had a temporary (requeue for later delivery) or permanent (return to sender)
failure.
If the
+folder extension is included in the user argument,
tmail
will attempt to deliver to the designated folder. If the folder does not exist
or the extension is not included, the message is delivered to the user's
INBOX. If delivery is to INBOX and no INBOX currently exists,
tmail
will create a new INBOX, using the
-I or
-b flag if specified.
tmail recognizes the format of an existing INBOX or folder, and appends
the new message in that format.
The
-b flag specifies a format to create INBOX if INBOX does not already
exist. This flag requires privileges, and can not be used with
-I. The
argument is a format name such as mix, mbx, etc.
The
-D flag specifies debugging; this enables additional message
telemetry.
The
-f or
-r flag is used by the mail delivery program to specify
a Return-Path. The header
Return-Path: <
from_name>
is prepended to the message before delivery.
The
-I flag is used by the mail delivery program to specify an
alternative INBOX name. This flag requires privileges, and can not be used
with
-b. This affects the location and format of INBOX. If specified,
it should be in one of three forms:
The first form of argument to
-I is the string "INBOX", which
means to write to the system default inbox using the system default mailbox
format. These system defaults are defined when the c-client library is built.
The second form of argument to
-I is a delivery specification, consisting
of "#driver.", a c-client mailbox format driver name, "/",
and a file name. This will write to the specified file in the specified
format. For example, #driver.mbx/INBOX will write to file "INBOX" in
the home directory in mbx format; and #driver.unix/mail/incoming will write to
file "incoming" in the user's "mail" subdirectory in unix
(default UNIX) format.
The third form of argument to
-I is any other name. Normally, this will
write to the specified file on the user's home directory in the specified
format. However, certain names are special. These are:
value equivalant to
----- -------------
INBOX.MTX #driver.mtx/INBOX.MTX
mbox #driver.unix/mbox
mail.txt #driver.tenex/mail.txt
If
-I is not specified, the default action is
-I INBOX.
If multiple recipients are specified on the command line,
tmail spawns
one child process per recipient to perform actual delivery. This way of
calling
tmail is not recommended; see below under
RESTRICTIONS.
INSTALLATION¶
If
tmail is to be used for mail delivery from the mail delivery program,
it
must be installed setuid root.
If sendmail is the mail delivery program,
tmail is invoked from
sendmail.cf. Look for the "Mlocal" line, and substitute the path
name for the
tmail binary in place of /bin/mail, /usr/lib/mail.local,
etc. You should also add the flag to invoke
tmail with CRLF style
newlines; this is usually done with E=\r\n in the Mlocal line.
Here is an example of an Mlocal line in sendmail version 8:
Mlocal, P=/usr/local/etc/tmail, F=lsDFMAw5:/|@qPrn+,
S=10/30, R=20/40, E=\r\n, T=DNS/RFC822/X-Unix,
A=tmail $u
If
tmail is to be called with the
-I flag, it must be invoked with
both real and effective UID root. Many sendmail configurations invoke the
local mailer as the sending user when that user is local, which will prevent
-b or
-I from working.
SECURITY CONSIDERATIONS¶
If
tmail is invoked by an ordinary user, the Received: header line will
indicate the name or UID of the user that invoked it.
Ordinary users are not permitted to use the
-b or
-I flag since
otherwise a user could create any file on another user's directory.
tmail can deliver mail to home directories. In addition,
tmail can
be used to deliver mail to other mail folders in a home directory or an
inferior directory of a home directory.
RESTRICTIONS¶
The calling program should invoke
tmail with CRLF newlines, otherwise
tmail will complain in syslog.
Absolute pathnames and
~user specifications are not permitted in
+folder extensions.
Ordinary users are not permitted to use the
-I flag.
IMAP4 namespace names are not yet supported in
+folder extensions.
It is not possible to use
tmail to deliver to
mh(1) format
mailboxes.
If delivery to multiple users is specified and delivery to any single user
fails, the entire delivery will be reported as having failed, even though
delivery to other users may have succeeded. If
tmail is used for mail
delivery from
sendmail(8), a separate tmail invocation should be done
for each user. Otherwise a delivery failure for a single user in a message
going to multiple users will cause multiple deliveries to all the other users
every time
sendmail(8), retries.
AUTHOR¶
Mark Crispin, MRC@CAC.Washington.EDU
SEE ALSO¶
binmail(1)
sendmail(8)