問題タブ [procmail]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - 注入の脆弱性がある場合、bashにはどのようなものがあり、それらからどのように保護できますか?
procmailを介して開始するbashスクリプトがあります。Procmailは、bashスクリプトへの引数として、電子メールの件名とfromフィールドを渡します。これらの値はどのような方法でもサニタイズされていないため、誰かが利用できるbashのインジェクションの脆弱性があるかどうか、もしそうなら、これらから保護するために私ができることを見つけようとしています。何が起こっているのかを説明するためのサンプルコードを次に示します。
このbashスクリプトは、次のような.procmailrcスクリプトを使用してprocmailによって呼び出されます。
インジェクションの脆弱性について疑問に思っている2つの領域は、スクリプトのインスタンス化です。
スクリプト内の変数の使用法。
興味があれば、この質問を思いついた実際のユースケースを次に示します。
email - Maildrop: Date: ヘッダーでメールをフィルタリングする
Maildirに保存されたメッセージでgetmail + maildrop + mutt + msmtpチェーンを使用しています。非常に大きな受信トレイが気になるので、次のように日付ごとにメールを整理したいと思いました。
私はよくググってメールフィルター言語について読んだことがありますが、それでもそのようなフィルターを書くのは難しいです。Maildrop のメーリング リスト アーカイブには、これに関する情報はほとんどありません (私が調べた限りでは)。https://unix.stackexchange.com/questions/3092/organize-email-by-date-using-procmail-or-maildropにはいくつかの半解決策がありますが、使いたいので好きではありません"Date:" ヘッダーと "YEAR.MONTH" のように数字で並べ替えたい。ヘルプ、考え、リンク、資料をいただければ幸いです。
linux - procmailがスクリプトを正しく実行していません
procmailによってローカルに配信された受信メールからスクリプトを実行する際に奇妙な問題が発生しています(perlとrubyが失敗します)。
システムはCentOS5.5で、postfixをメーラーとして使用し、.forwardを設定してメールをprocmailに送信します。.procmailrcとスクリプトは、Ubuntuサーバーで動作するセットアップと同じです。
.procmailrcは次のとおりです。
perlスクリプトは次のとおりです。
そして、電子メールを受信したときのログの失敗:
行末はすべてUNIXです。スクリプトはコマンドラインから正常に実行されます。
コマンドラインから直接procmailにパイプする場合、セットアップ全体は正常に機能しますが、ローカル配信プロセスの一部として呼び出されると、#!スクリプトでは行が無視されているようです。
次のように、パイプでperlを明示的に実行すると、perlスクリプトを実行できます。
...しかし、私は本当に敗北を認めたくありません。
procmail - Procmail:フォルダに移動し、既読としてマークします
簡単な質問:特定の件名のメールをフォルダに移動し、後で既読のマークを付けたい。引っ越しは私のために働きます
しかし、メールを既読としてマークする方法は?
email - スケーラブルなバックエンド Postfix サーバー ソリューションを作成するには?
これが私が直面している問題です。一部のユーザーのアカウントから転送された電子メールを解析し、そこからいくつかのデータを抽出する必要があるポストフィックス サーバーがあります。通常、ユーザーあたり約 200 通の電子メールがあります。5 人のユーザーでテストしましたが、これはすべて問題ありませんでしたが、ユーザー数が 10000 や 100000 など、それ以上の数に達した場合はどうすればよいでしょうか? この重い負荷をサポートできるように、postfix ソリューションをスケーラブルにする方法について何かアイデアはありますか?
現在の postfix サーバー リソースは、512MB の RAM を搭載した Ubuntu 10.04 マシンです。
よろしく、ムラジョ
procmail - Procmail には小文字機能、または同様の機能がありますか?
私は次の (従来の) procmail レシピを使用して、メーリング リストの電子メールをキャッチし、リスト名でフォルダーにファイルします。
問題は、リスト名がすべて小文字から Firstlettercap に変更された場合、'listname' 用と 'Listname' 用の 2 つのフォルダーができてしまうことです。
$MATCH 変数を最終配信ルールで使用する前に小文字に変換したいのですが、lc() 関数への参照、またはこれを行うために使用できる正規表現/置換が見つかりません。
以下の1つのコメントはこれを示唆しました:
これも、私が求めていることをしていないようです。ただし、今見てみると、音訳は $MATCH が最初に出現したときにのみ行われていることが明らかであり、フォルダー割り当て行で使用するためにまったく変更されていないと思います。
更新 #1: フォルダー割り当て行で LISTID を使用しようとすると、「Bricolage」だけでなく、「Bricolage.project.29601.lighthouseapp」のようなものが表示されます。つまり、「bricolage」だけです。
exim - メールの添付ファイル killfile - 署名の添付ファイルをファイル名でブラックリストに登録する方法
署名の添付ファイルを名前で削除するという 1 つのことを行う最小限のサーバーサイド メール フィルタリング システムを実装するにはどうすればよいでしょうか。
一部の同僚のすべての電子メールには、インラインで埋め込まれた「signature.gif」または「signature-nn.gif」が含まれています (電子メール クライアントを再起動するまで nn が増加するように見えます)。(意味のある) 添付ファイルを含むメールを識別する必要があるのは、すべてのメールに (意味のない) 添付ファイルがあるという事実によって妨げられています。
理想的には、新しいファイル名をブラックリストに追加できるようにしたいと考えています。これにより、新しい埋め込まれたグラフィックがメールの受信時に簡単に消去できるようになります。
メールサーバーは Debian Linux の Exim であるため、procmail などのサーバー側のメール フィルターが適しています。クライアント側にはさまざまなメール アプリがあるため、クライアント側のソリューションは適していません。
Exim + Procmail (または同等のもの) を使用してこれを行うにはどうすればよいですか?
php - procmailを使用してphpスクリプトを呼び出す
カスタムメール転送を行おうとしています。#1qmailとオプションでprocmailを使用している共有サーバーを使用しています。
私が達成しようとしているのは、スケジュールに基づいた1つのアドレスのカスタム電子メール転送です。たとえば、各平日に作業する従業員のスケジュールがあり、今日作業しているランダムな従業員の電子メールアドレスを選択するphpスクリプトがあります。
だから私はprocmailでそのスクリプトを呼び出して、結果(単一の電子メールアドレス)を転送行に出力しようとしています:
例:
これは機能していません。まったく。私も試しました:
フォワードラインにパイプするだけでなく、次のようになります。
私はここで私の要素から完全に外れています...私はprocmailさえ使用しないように試みました、そして私はちょうどqmailからphpスクリプトに電子メール全体をパイプしました。通常の転送のようにヘッダーをそのままにしておく必要がありますが、これはPHPでは困難であり、私の範囲を少し超えています(無限の電子メールループを作成することができました)。
私はこれをperlでスクリプト化することを試みることができましたが、これは私が使用したことはありませんが、Webインターフェイスから、または少なくともユーザーフレンドリーな方法で管理できるスケジュールが必要です。
この時点で、助けや提案をいただければ幸いです。
編集:
コメントにコードを入れることができないので、ここで編集します。
これをログに記録します。
:0fwで使用すると、次のようになります。
編集:それを理解しました!
多くの試行錯誤の末、正しい方法を見つけました。
パイプをまったく使用しないでください。必要です。前方記号:
最終規則:
とても単純です...私は少し怒っていますこれを理解するのに何時間もかかりました、私を正しい方向に向けるのを手伝ってくれたみんなに感謝します!
bash - MIME ファイルを送信する
特定のアドレスで受信した各電子メールに対して何らかの操作を行う必要があります。最初に ai が procmail でルールを作成し、メールを bash ファイルにパイプします。
| mybash.sh
メールを tmp フォルダーに保存する bash ファイルでは、mutt を使用してメールのように開くことができる MIME ファイルのようです。
mutt -f mytmpmail
このメールをもう一度送信する必要がありますが、msmtp で試してみましたが
mytmpmail | msmtp address@example.com
、受信したメールの MIME メールが本文にテキストとして表示され、mailx で試してみましたが、同じでした。添付ファイルとして表示されますが、mutt -s "subject" -a mytmpmail adress@ex.com
まだテキスト ファイルです...メールの添付ファイルを抽出し、添付ファイルが必要な仕様を満たしていない場合は、別の場所に送信する必要があるため、メールを「そのまま」転送するだけで済みます。
ps : 私の英語でごめんなさい