On 22 May 2005 at 22:08, Craig Jackson wrote about
"Re: [exim] Using IMAP folders as qu":
|...
| Well, because I'm a not too smart guy, this is the best I can come up
| with: email that needs to be released can be copied using IMAP MUA into
| a Release folder. This rough draft cron script runs every minute:
|
| #!/bin/bash
|
| QUEUEDIR=/var/spool/exim/vmail/postmaster/Maildir/cur
Should be
QUEUEDIR=/var/spool/exim/vmail/postmaster/Maildir/.Release
or some such, shouldn't it?
| for EMAIL in `ls $QUEUEDIR`
| do
| RECIPIENTS=""
| RCPT_LIST=`egrep "^RCPT TO:" $QUEUEDIR/$EMAIL | egrep -o \
| "[^<]+@[^>]+"`
| for RECIPIENT in $RCPT_LIST
| do
| RECIPIENTS="$RECIPIENTS,$RECIPIENT"
| done
| RECIPIENTS=`echo $RECIPIENTS | sed "s/^,//"`
|
| SENDER=`egrep "^MAIL FROM:" $QUEUEDIR/$EMAIL | egrep -o \
| "[^<]+@[^>]+"`
|
| egrep -v "(^MAIL FROM:|^RCPT TO:|^DATA)" $QUEUEDIR/$EMAIL > \
| email.tmp
| /usr/local/exim/bin/exim -f $SENDER -oi -oem -bm $RECIPIENTS < \
| email.tmp
| done
Interesting, I didn't pay attention to the implications of batch_max
and use_bsmtp in the transport you posted earlier. I haven't done
this sort of thing, but assuming that the BSMTP file format (ie the
RCPT TO: and MAIL FROM: lines) doesn't cause problems with your IMAP
server, it should work.
An advantage of the BSMTP format is that you can feed it to exim
directly, no need to extract the sender & recipients in your script:
...
do
/usr/local/exim/bin/exim -bS <$QUEUEDIR/$EMAIL
rm -f $QUEUEDIR/$EMAIL
done
The script would have to run as a trusted user for the sender address
to be honored, and there's the possibility of a race between the IMAP
server writing a file and the script reading it. There may be other
issues as well.
- Fred