Copying email with qmail and Plesk
Posted
by Greg
on Server Fault
See other posts from Server Fault
or by Greg
Published on 2010-04-19T15:04:20Z
Indexed on
2010/04/19
15:13 UTC
Read the original article
Hit count: 441
I need to keep a copy of all outgoing and incoming email (for a single domain if possible) using qmail or Plesk. I can't recompile qmail, so qmailtap is out of the question, as is setting QUEUE_EXTRA in extra.h.
I'm pretty sure it should be possible with Plesk's mailmng utility, aka Mail Handlers but I'm having trouble getting them to work.
I've registered 2 hooks:
incoming hook
./mailmng --add-handler --handler-name=incoming --recipient-domain=example.com
--executable=/xxx/incoming.sh --context=/xxx/incoming/ --hook=before-local
incoming.sh
#!/bin/bash
# The email is passed on stdin - grab it to a variable
e=`cat -`
# $1 = context (/xxx/incoming)
# $3 = recipient ([email protected])
# Create /xxx/incoming/[email protected]
mkdir -p $1$3
# Save the email to /xxx/incoming/[email protected]/0123456789.txt
echo "$e" > $1$3/`date +%s%N`.txt
# Echo PASS to stderr
echo 'PASS' >&2
# Echo the email to stdout
echo "$e"
outgoing hook
# ./mailmng --add-handler --handler-name=outgoing --sender-domain=holidaysplease.com --executable=/xxx/outgoing.sh --context=/xxx/outgoing/ --hook=before-remote
The outgoing.sh file is the same as incoming.sh, except replace $3
(recipient) with $2
(sender).
The incoming hook does work, but saves 2 copies of each email - one before and one after SpamAssassin has run. The outgoing hook doesn't seem to get called at all.
So finally, my questions are:
- How can I make the incoming hook save only a single copy (preferably after SpamAssassin has run)?
- How can I get the outgoing hook to work?
© Server Fault or respective owner