送信メール用の Sievie - dovecot

送信メール用の Sievie - dovecot

送信メール用のフィルターを作成する必要があります。「宛先」に指定した電子メール アドレスが含まれている場合にメッセージをコピーします。次のものを用意しました。

# rule:[Copy to slack]
if address :contains "to" "[email protected]"
{
    redirect :copy "[email protected]";
}

そして私は試す

# rule:[Copy to slack]
if address :contains "to" "[email protected]"
{
    redirect :copy "[email protected]";
}

または

# rule:[Copy to ]
if address :contains "to" "[email protected]"
{
      fileinto "INBOX.Redmine";
}

しかし、毎回フィルターは機能しません。

これは、「宛先」にあるアドレスまたはその他のローカルメールから送信する場合にのみ機能します。

何か案は?

答え1

この方法では動作できないため、動作しません。メールを送信する場合は、ポート 465 に直接 Postfix に送信されるため、Sieve スクリプトは実行されません。

送信メールを処理するために sieve 言語を使用する場合は、一般的なソフトウェアにうまく統合されていないため、さらに多くの労力を費やす必要があります。少なくとも、2 つの特定のユース ケースでのみトリガーされる Dovecot の Pigeonhole Sieve 統合ほどうまく統合されていません。

  1. メールを受信すると、最終納品Dovecotが管理するメールボックス宛のメールの段階、または
  2. メールボックスの管理、具体的には Dovecot が管理するメールボックス上のローカルまたは IMAP 接続クライアントのアクションについてです。

注目すべきは、この統合ではメール送信のケースは処理されないことです。Dovecot には送信プロキシが含まれていますが、通常はその方向にはまったく関与せず、まれにこれが使用される場合でも、Sieve は処理されません。

いくつかの選択肢があります:

  • 「送信済み」メールボックスに保存されているメールに対してスクリプトをトリガーします (ただし、そのメールボックスに保存されていないメールに対しては動作しません)
  • スクリプトを Postfix の組み込み機能に置き換えます。受信者_bcc_マップ頭に浮かぶ
  • header_checksポリシーに従わないメールを単純に拒否するようにpostfix を設定します(例: 必要な To: ヘッダーをスキップし、その不完全なバージョンをすべて拒否する)
  • 何らかのmilter/filterでコピーを構成する
  • メールを受信したい2つのアドレスに拡張するように設定した(できれば新しいローカルの)アドレスを設定し、ユーザーがそこにメールを送信できるようにします。
  • その受信者宛のメールをスクリプトにパイプします。おそらく Sieve スクリプトを使用するスクリプトです (おそらくこれが最善策ではありません。LDA の使用例以外での Sieve の使用は、既存のソフトウェアでは十分にサポートされていません)。

関連情報