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
おそらく可能性があります) に接続されます。