-3

私は持っている:

postfix->dovecot-> new mail go to [aaaa@11111.xemple.com] mailbox 
postfix->dovecot-> new mail go to [aaaa@22222.xemple.com] mailbox 
postfix->dovecot-> new mail go to [aaaa@33333.xemple.com] mailbox 

受信メールが届いたときにスクリプトを実行し、ドメイン 22222.xemple.com の dovecot によって保存する必要があります。

新しいメールが aaaa@22222.xempl.com に届いたときの作り方 dovecot 実行スクリプト: sh /my/script/run/after/new/email/in/22222_xemple_com/run.sh

4

4 に答える 4

2

後置トランスポートを使用してください!

  1. コマンドtranspostfixを実行するユーザーを追加します

  2. 新しいトランスポートを master.cf に追加します。

    emailtransport   unix  -       n       n       -       -       pipe
        flags=X user=transpostfix  size=26214400 argv=/my/script/run/after/new/email/in/22222_xemple_com/run.sh
    
  3. 移送ファイルへのリンクを main.cf に追加

    transport_maps = hash:/etc/postfix/transport
    
  4. トランスポート ファイルを編集して postmap を実行する

    #   postmap /etc/postfix/transport
    transpostfix@localhost.localhost    emailtransport:
    
  5. BCCを追加します。1 通のメールが Dovecot に送られ、2 度目の同じメールが script に送られます。main.cf で編集します。

    recipient_bcc_maps = hash:/etc/postfix/recipient_bcc_maps
    
  6. /etc/postfix/recipient_bcc_maps

    ###    postmap /etc/postfix/recipient_bcc_maps
    aaaa@11111.xemple.com run_script@example.commm
    
  7. main.cf オプションvirtual_alias_maps を追加し、run_script@example.commm goto transpostfix@localhost.localhost からのメールをリダイレクトします

于 2016-05-17T23:39:59.697 に答える
0

incronを使う

/var/spool/incron:

/var/vmail/22222.xemple.com/aaaa/new IN_MOVED_TO,IN_ONESHOT /sys_my/postfix-mail/checker_postfix-parser.sh

--------------------- 読むのをやめる!古いソリューションは良くありません---- 私はそれを行うために別のプログラムを使用しています https://github.com/rvoicilas/inotify-tools/wiki#info

サーバー: centos 6

postfix-parser.shスクリプトを実行して、新しい文字がフォルダーに届くかどうかをテストします。

#!/bin/bash
###
### sh /sys_my/postfix-mail/postfix-parser.sh
while ((i<=END)); do
EVENT=$(inotifywait --format '%e' /var/vmail/22222.xemple.com/aaaa/new)
if [ "$EVENT" == "CREATE" ]; then 
echo $EVENT 
let ii++
echo $ii
fi
done

スクリプトchecker_postfix-parser.shを実行して、スクリプトが実行されているかどうかを確認します。

#!/bin/bash
###
# sh /sys_my/postfix-mail/checker_postfix-parser.sh

result=`ps aux | grep -i "postfix-parser.sh" | grep -v "grep" | wc -l`
if [ $result -ge 1 ]
   then
        echo "script is running"
   else
    sh /sys_my/postfix-mail/postfix-parser.sh
fi

スタートアップに追加: 次の行を追加します。

sh /sys_my/postfix-mail/checker_postfix-parser.sh

ファイルへ:

/etc/rc.d/rc.local

5 分ごとに cron でチェッカーを実行します。

*/1 * * * * root sh /sys_my/postfix-mail/checker_postfix-parser.sh
于 2014-12-02T09:27:58.873 に答える