電子メールを受信した後にスクリプトを実行する

電子メールを受信した後にスクリプトを実行する

私は個人的な目的でPostfix / Dovecotメールサーバーを運営しています。実際のメールボックスはほんの一握りで、基本的に[email protected]はと[email protected]

私はしばしばこのvirtualファイルを使用してに渡す仮想メールボックスを作成します[email protected]。オンラインショップでワンタイム購入をする場合、スパムの心配なくしてみたいオンラインゲームなど、ワンタイムアカウントが多いです。これを行うには、SSHを介して次のコマンドを実行します。

sudo vim /etc/postfix/virtual
# add a line that looks like:
# # [email protected]      [email protected]
sudo postmap virtual
sudo service postfix restart

私はプロセスをある程度自動化したいので、これを頻繁に行います。単に、仮想メールボックスと実際のメールボックスをパラメータとして使用して、シェルスクリプトを作成して直接変更することを検討しましたが、それ以上を望んでいました。

[email protected]サーバー上の他のメールボックスから仮想メールボックス名をメッセージ本文として使用して、メッセージ本文に電子メールを送信できるようにしたいです。問題は通話中ですが、sudoこの問題を処理する責任を負う新しいユーザーを作成できます。このユーザーはこの問題を処理する必要があります。

主な質問は、電子メールでトリガーされるイベントをどのように生成しますか?これを実行できるサービスはどこにありますか?この電子メールを受信し、このイベントに対してコマンドを実行するようにPostfixまたはDovecotを設定できますか?

ベストアンサー1

電子メールメッセージを受信した後、スクリプト(私はシェルスクリプトを使用)を実行する正しい手順は次のとおりです。それは修正を含むサフィックス構成ファイル、基本構成ファイル(私のDebianでは、次の場所にあります。/etc/サフィックス)次の行を追加して:

 my_shell_script unix - n n - - pipe flags=F user=MY_USERNAME argv=/path/to/my/shell/script ${sender} ${size} ${recipient}

これを表しますサフィックス特定のイベントが発生したときにスクリプトを実行します(実行可能にする必要があります)。

スクリプトの実行時期を指定するには、次のようにします。[Eメール保護]メッセージを受信しました。次の行を配置します

 [email protected] FILTER my_shell_script:dummy

ファイル内部/etc/postfix/address.txt;適切なデータベースを作成する必要があります。サフィックスこのファイルを使用すると、次のことができます。

  postmap /etc/postfix/address.txt

出力として名前付きファイルを生成します。/etc/postfix/address.db。今再び/etc/postfix/main.cfファイルを作成し、次の行を追加します。

 smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/access, permit_mynetworks, reject_unauth_destination

今再起動サフィックス

  postfix reload

行ってもいいです。

おすすめ記事