Best Practical RT, sorting email into queues automatically using procmail
Posted
by
user52095
on Server Fault
See other posts from Server Fault
or by user52095
Published on 2010-08-23T21:29:26Z
Indexed on
2011/01/16
16:54 UTC
Read the original article
Hit count: 473
procmail
|request-tracker
I'm trying to get incoming e-mail to automatically go directly into whichever queue/ticket they are related to or create a new one if none exist and the right queue e-mail setup in the web interface is used.
I will have too many queues to have two line items within mailgate per queue.
A similar issue was discussed here (http://serverfault.com/questions/104779/procmail-pipe-to-program-otherwise-return-error-to-sender), but I thought it best to open a new case instead of tagging on what appeared to be an answer to that person's query.
I'm able to send and receive e-mail (via PostFix) to the default rt user and this user successfully accepts all e-mail for the relative domain.
I have no idea where the e-mail goes - it's successfully delivered, but it does not update existing tickets (with a Subject line match) and it does not create any new.
Here's and example of my ./procmail.log:
procmail: [23048] Mon Aug 23 14:26:01 2010
procmail: Assigning "MAILDOMAIN=rt.mydomain.com
"
procmail: Assigning "RT_MAILGATE=/opt/rt3/bin/rt-mailgate
"
procmail: Assigning "RT_URL=http://rt.mydomain.com/
"
procmail: Assigning "LOGABSTRACT=all
"
procmail: Skipped "
"
procmail: Skipped "
"
procmail: Assigning "LASTFOLDER={
"
procmail: Opening "{
"
procmail: Acquiring kernel-lock
procmail: Notified comsat: "rt@18337:./{
"
From [email protected] Mon Aug 23 14:26:01 2010
Subject: RE: [RT.mydomain.com #1] Test Ticket
Folder: { 1616
Does the notified comsat portion mean that it notified RT?
The contents of my ./procmailrc:
#Preliminaries
SHELL=/bin/sh #Use the Bourne shell (check your path!)
#MAILDIR=${HOME} #First check what your mail directory is!
MAILDIR="/var/mail/rt/"
LOGFILE="home/rt//procmail.log"
LOG="--- Logging ${LOGFILE} for ${LOGNAME}, "
VERBOSE=yes
MAILDOMAIN="rt.mydomain.com"
RT_MAILGATE="/opt/rt3/bin/rt-mailgate"
#RT_MAILGATE="/usr/local/bin/rt-mailgate"
RT_URL="http://rt.mydomain.com/"
LOGABSTRACT=all
:0
{
# the following line extracts the recipient from Received-headers.
# Simply using the To: does not work, as tickets are often created
# by sending a CC/BCC to RT
TO=`formail -c -xReceived: |grep $MAILDOMAIN |sed -e 's/.*for *<*\(.*\)>* *;.*$/\1/'`
QUEUE=`echo $TO| $HOME/get_queue.pl`
ACTION=`echo $TO| $HOME/get_action.pl`
:0 h b w
|/usr/bin/perl $RT_MAILGATE --queue $QUEUE --action $ACTION --url $RT_URL
}
I know that my get_queue.pl and get_action.pl scripts work, as those have been previously tested.
Any help and/or guidance you can give would be greatly appreciated.
- Nicôle
© Server Fault or respective owner