MUAの代わりにMTA(sendmail)にユーザー署名を追加する

MUAの代わりにMTA(sendmail)にユーザー署名を追加する

Outlook / ThunderbirdクライアントとLinuxサーバーを持つローカルネットワークがある場合:受信メールをいくつか変更して、送信メールに送信者の署名を追加することはsendmail可能ですか?sendmail's milterサーバー上の署名を一元化するのが便利です。

次のように進んでください。

1) 利用者はEメールを作成して発送します。 MUAは後で置き換えられるいくつかの「署名」マジックテキスト、つまり「」x-replace-signature-xを設定するため、ユーザーが目的の場所(引用符の下または応答の下)にその署名を追加するようにMUAを設定する必要があります。

2) メール到着sendmail's MSPキュー

3) Sendmail""ヘッダーからユーザー名を取得しますFrom。つまり、[email protected]

4)ファイルシステム(埋め込み画像を含めることができます)Sendmailでそのユーザーの署名を見つけます。html/var/lib/sendmail/signatures/user1.html

5) Miltは""を探し、そのx-replace-signature-x行を次に置き換えます。/var/lib/sendmail/signatures/user.html

6)sendmail's MTAメールを送信します(私の場合はスマートホストに)。

私はそのような機能を知らないので、正規表現マッチングのためにミルターを使うつもりです。

ベストアンサー1

@thrigが提案したように、MIMEDefangは良い方法であり、多くの作業が必要ですが、IMHOは努力する価値があります。

ほとんどのfilter_end()人は次のいずれかの機能を使用します。

append_text_boilerplate($entity, $boilerplate, $all)  
append_html_boilerplate($entity, $boilerplate, $all)  

たとえ追加代わりにテキストを使用してください。指定したタスクを正確に実行するには、filter_part()ハンドラを使用できます。 1つの方法は、action_external_filter()変更したいセクションを呼び出すことです(MIME設定を持たない最初のtext / plainセクションとtext / htmlセクションは通常良い選択です)。外部コマンドでセクションをフィルタリングします。 HTMLに画像を追加するには、その画像を新しいセクションとして追加し、CIDを介して参照する必要があります。

メッセージを修正する一般的な方法は、電話をかけることです。これは言葉replace_entire_message()のように単純ではありませんfilter_end()。現在のメッセージを MIME::Entity にコピーし、本文の一部を変更し、メッセージ全体の本文を新しい MIME::Entity に置き換える必要があります。

これにより開始されます。 https://stuff.mit.edu/~jik/software/mailman_mimedefang/

あるいは、低技術ソリューションは、即時配信の代わりにsendmailスプール(遅延配信)を使用し、-oddキュー内のdfファイルを変更することです(時々プレーンテキストで処理すると機能しますが、徹底するにはMIMEで処理する必要があります)。 qf/df ペアは、新しい操作スプール (re-mqueue.plおそらく可能性があります) に接続されます。

おすすめ記事