問題タブ [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.
email - .procmailrc の内容
.procmailrc ファイルに入れる便利な一般的な項目はありますか?
unix - procmail lockfile ユーティリティと NFS
procmail に同梱されている lockfile ユーティリティを、NFS マウント ディレクトリと組み合わせて使用したことのある人はいますか?
lockfile のマニュアル ページには、「Lockfile は NFS 耐性があり、8 ビット クリーンである」と記載されています。
debian - exim4 経由で届くメールにヘッダーを追加する
Exim4-daemon-heavy を実行している Debian Etch システムを持っています。
システムはインターネットに公開されていますが、その意図は、その前にプロキシとして実行されるスパム フィルタリング サービスからの正当なメールのみを受信することです。(ただし、これらの IP へのアクセスを制限することはできません。なぜなら、ポート 25 でサーバー経由でリレーする承認済みユーザーが何人かいるからです。587 を使用する必要があることはわかっていますが、現在は使用していません。)
これが機能する一般的な方法は次のとおりです。
[インターネット] -> [SMTP プロキシ] -> [マイサーバー]
残念ながら、メールサーバーに直接メールを送信し、MX レコードを無視するスパマーがいます。したがって、私の明らかな解決策は次のいずれかのようです。
- SMTP プロキシで処理された各メッセージにヘッダーを追加します。
- メールが承認されたリレーラーから送信されていない限り、受信メッセージごとにサーバーにヘッダーを追加します。(つまり、SMTP AUTH を完了した人。)
そうすれば、私の MX レコードを無視した送信者から直接届いたメッセージだけを procmail を使って迷惑メールにすることができました。
メッセージを送信したリモート IP を記録するために、Exim4 が強制的に "X-Submitter: $ip" などのヘッダーを追加する可能性があることは確かですが、それをどのように行うべきかはわかりません。
procmail - Procmail のトラブル
私はこれを何週間も解決しようとしてきました...
私の目標は、次のメッセージを受信トレイで検索することです。
私はこれを行うために3つのファイルを使用しています。最初に、$HOME の .forward ファイル
これら 2 つは ~/.procmail ディレクトリにあります。
最後に、ルール ファイル: general.rc
これら 3 つのファイルすべてが連携して、件名に hello パターンを含むメールをコピーおよび移動することが想定されています。安全のために、特定の人の住所も検索します。次に、これらのパターンが一致すると、見つかったものを貼り付けて、指定されたパスを作成します。まだ存在しない場合。
しかし、それはしていません。これらのファイルを emacs、vi、.. で編集して保存すると、自動的に機能しますか? それともコンパイルする必要がありますか?
もしそうなら、.procmailrc は (すべてではないにしても) 'Shell=/bin/sh' を必要とするかもしれません
試していないわけではありません...
いいえ、受信メールを処理する設計が不十分です..
私は自分自身に電子メールを送信して、それをテストしました。
私が思うに、私の General.RC ファイルはコード化された書き込みではありません。なぜなら、私が自分自身に電子メールを送信した直後に、それをコピーして指定されたディレクトリに移動する必要があるからです。
私がこれらの間違いを犯したのも不思議ではありません。私はこれら 3 つのファイルすべてを 100 万回も編集しました。
LOGファイルに何も表示されません...
他のすべてを修正し、 /usr/bin/procmail が存在することを知っています。これは、whereis を使用してそのパスを確認したためです。
しかし、私のテストはまだ失敗します。自分宛てにメールを送信し続け、メール フォルダをチェックして、「Hello」ファイルのバイト数が増加しているかどうかを確認しています。
ログを機能させるにはどうすればよいですか? general.rc は間違っていますか?
python - 新しいメールが表示されるたびに、procmail にカスタム python スクリプトを実行させたい
私は procmail でよくある要件を持っていますが、どうにかして結果を得ることができません。次の内容の procmailrc ファイルがあります。
ここで、私のカスタム python スクリプト (privilege_emails_forward.py) は、現在受信した電子メールをスキャンし、メール コンテンツに対していくつかの操作を行います。しかし、最初のショットでスクリプトを実行することはできません (メールの内容をスキャンすることは言うまでもありません)。
- これは、新しいメールが到着するとすぐに外部プログラム (python) を呼び出す正しい方法ですか?
- そして、私のpythonプログラム(privilege_emails_forward.py)はどのようにしてメールを入力として受け取りますか? 私はsys.argvまたはstdinとして意味しますか????
email - IMAPメールをGmailに移動し、正しい時刻を保持する
Gmailを使用して、imapのみのメールアカウントからのメールを管理しようとしています。私の戦略は、(getmailを使用してサーバーからメールを取得し、それをprocmailに渡して転送することでした。
これはほとんど機能します。メールが正常に取得され、Gmailアカウントに転送されます。それが行わないことは、適切な「送信」時間を維持します。つまり、3か月前に受信したメールは、転送時に受信したものとして表示されます。
問題は、これらのメールを転送して、元の送信時刻を尊重するにはどうすればよいかということです。
procmail - Procmailを使用して送信者とすべての受信者に自動返信を送信するにはどうすればよいですか?
元の送信者だけでなく、元の電子メールにコピーされたすべての人(To:またはcc:)に自動応答を送信するprocmailレシピまたはPerlまたはシェルスクリプトを作成したいと思います。
例:
bob@example.comは、john @ example.comおよびpaul@example.com(To:フィールド)に電子メールを書き込みます。コピーはcc:経由でrob@example.comとalice@example.comに送信されます。
スクリプトで、元の送信者(bob@example.com)と、電子メールのコピーを送信された他のすべての人(john @ example.com、paul @ example.com、rob @ example)に自動応答を送信したいと思います。 comおよびalice@example.com)。
ありがとう
grep - ファイル内のどのパターンがgrepと一致したかを判断する方法は?
私は procmail を使って、受信トレイを広範囲にソートしています。最後から 2 番目のレシピは、受信する From: と、歴史的に優れた電子メール アドレスの (非常に) 長いホワイト/ゴールド リストと、電子メール アドレスのパターンに一致します。レシピは次のとおりです。
最後のレシピでは、疑わしいフォルダーに残されたすべてのものを、スパムの可能性があるものとして検査します。ゴールドリストは、現在 7384 行の長さです (うーん...)。ときどき、すり抜けたスパムが届くので、失敗したパターンを修正したいと思います。一致するパターンを表示するのに役立つ grep の特別なフラグについて少し前に読んだと思ったのですが、それがまた見つかりません。スキャンしたテキストと一致したファイルからパターンを表示する grep を使用する方法はありますか? または、パターンごとにスキャンするスクリプトを作成する以外に、質問に答える別の同様のツールはありますか?
email - メールの件名に本文の先頭を追加して、メールを転送します
procmailなどを使用してメールの件名に本文の先頭を追加するにはどうすればよいですか?新着メールの本文は消去できます。
regex - procmailのメール本文の空白を一致させる方法は?
私はそのようなルールを使おうとしました:
しかし、それは機能しません。
[[:space:]]をリテラルスペース文字に変更すると:
できます。
次の場合にも機能します。
私は何か間違ったことをしているに違いありませんが、実際にはそれを見つけることができません。ヒントはありますか?