| Current File : //var/qmail/man/cat8/qmail-dk.0 |
Maintenance Procedures qmail-dk(8)
NNNNAAAAMMMMEEEE
qmail-dk - sign/verify and queue a mail message for delivery
SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
qqqqmmmmaaaaiiiillll----ddddkkkk
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
qqqqmmmmaaaaiiiillll----ddddkkkk has the same interface as qqqqmmmmaaaaiiiillll----qqqquuuueeeeuuuueeee except that
it inserts an appropriate DomainKeys header before it queues
the message. There are two separate ways to invoke qqqqmmmmaaaaiiiillll----
ddddkkkk. For one way, you can patch qmail with the
http://qmail.org/qmailqueue patch and set QMAILQUEUE to
point to qmail-dk in the environment when you send or
receive email. For another way, you can rename qmail-queue
to qmail-queue.orig, and set DKQUEUE=bin/qmail-queue.orig.
qqqqmmmmaaaaiiiillll----ddddkkkk supports DomainKey signing and verification. It
uses the libdomainkey and OpenSSL libraries. To sign a mes-
sage, set the DDDDKKKKSSSSIIIIGGGGNNNN environment variable to the pathname to
the private key that will be used to sign the message. If
there is a % character in the environment variable, it is
removed and replaced by the domain name in the From: header.
If, after substituting the %, that file does not exist, the
message will not be signed. If there is no % and the file
does not exist, the message will be rejected with error 32.
The selector will be taken from the basename of the file.
The private key should be created by ddddkkkknnnneeeewwwwkkkkeeeeyyyy, which comes
with libdomainkey.
To verify a message, set the DDDDKKKKVVVVEEEERRRRIIIIFFFFYYYY environment variable
to a desired set of letters. Precisely, if you want a lib-
domainkey return status to generate an error, include that
letter, where A is the first return status (DK_STAT_OK), B
is the second (DK_STAT_BADSIG), etc. The letter should be
uppercase if you want a permanent error to be returned (exit
code 13), and lowercase if you want a temporary error to be
returned (exit code 82).
For example, if you want to permanently reject messages that
have a signature that has been revoked, include the letter
'K' in the DDDDKKKKVVVVEEEERRRRIIIIFFFFYYYY environment variable. A conservative
set of letters is DDDDEEEEGGGGIIIIJJJJKKKKffffhhhh. Reject permanently BADSIG,
NOKEY, BADKEY, SYNTAX, ARGS, REVOKED, and INTERNAL errors,
and temporarily CANTVRFY and NORESOURCE. Add in BBBB if you
want to reject messages that have a signature that doesn't
verify (presumably because the message is a forgery or has
been damaged in transit. Note that qqqqmmmmaaaaiiiillll----ddddkkkk always inserts
the DDDDoooommmmaaaaiiiinnnnKKKKeeeeyyyy----SSSSttttaaaattttuuuussss header, so that messages can be
rejected at delivery time, or in the mail reader.
Typically, you would sign messages generated on-host by set-
ting DDDDKKKKSSSSIIIIGGGGNNNN in the environment before running an email
SunOS 5.11 Last change: 1
Maintenance Procedures qmail-dk(8)
program. DKSIGN will be carried through qmail's sendmail
emulation through qqqqmmmmaaaaiiiillll----iiiinnnnjjjjeeeecccctttt to qqqqmmmmaaaaiiiillll----ddddkkkk. You would also
set it for qqqqmmmmaaaaiiiillll----ssssmmmmttttppppdddd at the same time RRRREEEELLLLAAAAYYYYCCCCLLLLIIIIEEEENNNNTTTT is set,
most often in the tcpserver cdb file. If a host is author-
ized to relay, you probably want to sign messages sent by
that host. DDDDKKKKVVVVEEEERRRRIIIIFFFFYYYY should be set for all other hosts.
If neither DDDDKKKKSSSSIIIIGGGGNNNN nor DDDDKKKKVVVVEEEERRRRIIIIFFFFYYYY are set, then DDDDKKKKSSSSIIIIGGGGNNNN will be
set to /etc/domainkeys/%/default. If such a private key
exists, it will be used to sign the domain.
qqqqmmmmaaaaiiiillll----ddddkkkk will ordinarily spawn qmail-queue, but if DKQUEUE
is set in the environment, the program that it points to
will be executed instead. If DKQUEUE is not set, and
qqqqmmmmaaaaiiiillll----ddddkkkk has been invoked as qqqqmmmmaaaaiiiillll----qqqquuuueeeeuuuueeee then qqqqmmmmaaaaiiiillll----
qqqquuuueeeeuuuueeee....oooorrrriiiigggg is spawned instead.
EEEEXXXXIIIITTTT CCCCOOOODDDDEEEESSSS
qqqqmmmmaaaaiiiillll----ddddkkkk returns the same exit codes as qmail-queue with
these additions:
33332222 The private key file does not exist.
55557777 Trouble waiting for qmail-queue to exit.
55558888 Unable to vfork.
55559999 Unable to create a pipe to qmail-queue.
SSSSEEEEEEEE AAAALLLLSSSSOOOO
addresses(5), envelopes(5), qmail-header(5), qmail-
inject(8), qmail-qmqpc(8), qmail-queue(8), qmail-send(8),
qmail-smtpd(8)
SunOS 5.11 Last change: 2