web-dev-qa-db-ja.com

Best Practical RT、procmailを使用して電子メールを自動的にキューに分類

受信メールを自動的に関連するキュー/チケットに直接入れるか、存在せず、Webインターフェイスで適切なキューメール設定が使用されている場合は新しいものを作成しようとしています。

キューが多すぎて、キューごとにメールゲート内に2つのラインアイテムを含めることができません。

同様の問題がここで議論されました( Procmail:Pipe to Program、それ以外の場合は送信者にエラーを返す )が、その人の答えと思われるものにタグを付けるのではなく、新しいケースを開くのが最善だと思いましたクエリ。

デフォルトのrtユーザーと(PostFix経由で)電子メールを送受信でき、このユーザーは相対ドメインのすべての電子メールを正常に受け入れます。

電子メールがどこに送信されるのかわかりません。正常に配信されますが、既存のチケットは更新されず(件名が一致します)、新しいチケットは作成されません。

これが私の./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

通知されたcomsat部分は、RTに通知したことを意味しますか?

私の./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
 }

Get_queue.plスクリプトとget_action.plスクリプトは以前にテストされているため、機能することはわかっています。

あなたが与えることができるどんな助けおよび/またはガイダンスも大いにありがたいです。

  • ニコール
3
user52095

ルーティング関数をprocmailに実装するのではなく、RTにプッシュすることをお勧めします。メールをRTに送信してから、EmailRoutingやSetOwnerAndQueueBySubjectのスクリプト例などを使用して適切なキューに電子メールを送信します。

RT Wiki( https://rt-wiki.bestpractical.com/wiki/Main_Page )から:

EmailRouting-> https://rt-wiki.bestpractical.com/wiki/EmailRouting

SetOwnerAndQueueBySubject-> https://rt-wiki.bestpractical.com/wiki/SetOwnerAndQueueBySubject

2
ttyS0