問題タブ [sieve-language]
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.
postgresql - CyrusのseiveshellをコンパイルするときにPostgreSQLライブラリに対してリンクするにはどうすればよいですか?
私は、とりわけPerlとCyrusIMAPで構成されるソフトウェアスタックを維持しています。
Perlは正常に機能しているようで、Cyrus cyradm(perlスクリプト)も正常に機能しています。ただし、sieveshellは実行されず、ここで助けを求める理由があります。
sieveshellを実行すると、次の出力が得られます。
モジュールCyrusの「/usr/local/pozix/perl-5.10.0/lib/site_perl/5.10.0/i686-linux-thread-multi/auto/Cyrus/SIEVE/managesieve/managesieve.so」を読み込めません: :SIEVE :: manageieve:/usr/local/pozix/perl-5.10.0/lib/site_perl/5.10.0/i686-linux-thread-multi/auto/Cyrus/SIEVE/managesieve/managesieve.so:未定義のシンボル: PQfinish at /usr/local/pozix/perl-5.10.0/lib/5.10.0/i686-linux-thread-multi/DynaLoader.pm line 203. at ./sieveshellline45コンパイルがrequireat./sieveshelllineで失敗しました45.BEGINが失敗しました-./sieveshell行45でコンパイルが中止されました。
PQfinishはPostgreSQLライブラリの一部です。managesieve.soでlddを実行すると、PGSQLライブラリはリンクされませんが、不足しているライブラリもありません。リストされているlibsasl2ライブラリでlddを実行すると、それも問題ないように見え、PGSQLを使用しますが、managesieve.soにリンクされているライブラリの一部ではないようです。さらに、libsasl2は、他のソフトウェアで使用すると正常に動作します。
これがlddmanagesieve.soです
ldd usr / local / pozix / cyrus-sasl / lib / libsasl2.so.2
CyrusIMAPの構築中にもコンパイルエラーはありません。これはパスの問題である可能性がありますが、パス出力をどこで調べたりデバッグしたりするのか、次にどこに進むのかがわかりません。
これをグーグルで試したところ、2回ヒットしましたが、解決策がないか、うまくいきませんでした。PerlAUTOLOADが何らかの形で混乱しているのではないかと思います。DBD::Pgも機能しているようです。バージョン2.15.1を使用します。
次にどこに行くべきかについての提案はありますか?そこにPerlの達人はいますか?
解決しました!
./configureは、各サブディレクトリにMakefileを作成します。managesieve.soライブラリは、Perlからの呼び出しで作成されます... IE Perl Makefile.PLは、Makefileになります。アンドリューのアドバイスは、これを追跡するのに非常に役立ちました。Makefileには、次の行があります。
私が読むために更新したもの:
そして、これはそれを解決しました!
python - PythonでSieveメールフィルターを処理するための優れたライブラリはありますか?
私は現在、顧客がユーザーのsieveメールフィルターファイルを処理するためのモジュールを作成しています。私はPythonを使用する必要があり、残念ながら、ふるいフィルターを処理するための優れたライブラリ/パッケージを見つけることができませんでした。
質問は:このようなものはありますか?
regex - ふるいメールの正規表現が機能しない
私はsmartsievewebguiを使用してふるいフィルターを管理しています。正規表現の一致に問題があります。
件名がtestXX(Xは0から9までの数字)の形式のテストメールを自分に送信しています。
フィルタを定義する場合:メッセージ「件名:」が正規表現[0-9] +に一致する場合、生成されるルールは次のとおりです。
メッセージは正しく処理されます
しかし、正規表現にテキストを追加するといつでも...一致が失敗するメッセージ「件名:」が正規表現に一致する場合test[0-9]+生成されたルールは次のとおりです。
オンラインツールを使用してコードをテストし、ふるいスクリプトをテストしたところ、式がより複雑であっても、すべてが正常に機能しました。もっと複雑な表現が必要ですが、問題がどこにあるのかを見つける必要があるので、それを取り除きました。
email - How useful is James jSieve?
I am looking to create some filters of different complexity for Apache James. My question is: How useful is James jSieve? What are benefits of using it? How current/actively-developed it is?
I already looked at the standard matcher & mailets. I tried and liked the custom matchers, e.g.:
I am curious to know What would be jSieve analogy of the above code.
sendmail - 完全な受信者アドレスの sendmail lda パラメータ
これを使用して:
私のsendmail mcでは、次のようなprocmail LOGNAMEを提供します
それ以外の
使用して
与える
私の問題は、'user' ではなく 'user@domain.tld' の形式の電子メール ユーザーがいるということです。したがって、procmail は、たとえば、ユーザー アドレス部分が 'user' だけのメール ディレクトリを見つけることができません。sendmails lda 呼び出しから完全な受信者アドレスを procmail に提供するにはどうすればよいですか?
編集:
理由を確認するために、より明確になるようにします。
私の「仮想」受信者は、a) システム ユーザーではなく、アドレスに異なるドメインがあり、すべて use_cw_file 機能で設定されています。ローカル メーラーは procmail と dovecot (+sieve) で、最終的に仮想ユーザーも処理されます。dovecot は、同じホスト上で admin@domain1.com と admin@domain2.com などを処理するために、ユーザーに加えてドメインに名前を付けているためです。
したがって、完全なアドレスをlda(スタック)に配信するには、sendmailが必要です(procmail-> sieve-> dovecot)。
perl - 古い IMAP::Sieve perl モジュールの場所
サーバーをアップグレードしていますが、既存の perl CGI プログラムにはIMAP::Sieve
perl モジュールが必要です。私の問題は、インターネット上でそれへの参照がもう見つからないことです。それが何か他のものに置き換えられたかどうか、および/またはどこでそれを見つけることができるかを誰かが知っていますか?
私たちが使用している既存の perl CGI プログラムはwebsieve
(SourceForge で見つけることができます) です。カスタマイズしたので、他のものを使用したくありません。完全に機能しています。スクリプトも使用してIMAP::Admin
います。
ヒントやアドバイスをありがとう。
python - 受信トレイ サブディレクトリ内の電子メールの dovecot.sieve ルールを自動的に作成するスクリプト
この素晴らしいサイトのソリューションをしばらく閲覧/使用した後、ついに私が参加する時が来ました.
私は自分が何を望んでいるのかについてかなり明確なコンセプトを持っていますが、そこにたどり着くための最も良い方法を探しています.
私が欲しいものは?:
しばらくの間、raspberry-pi でメールサーバーのセットアップを使用していますが、これまでのところうまく機能しています。これは、dovecot サーバーと、多数の電子メール アドレスを個別の受信トレイ サブディレクトリに分類するように設定されたいくつかのふるいフィルターで構成されています。また、スクリプトによって毎晩ハムとスパムの違いを教えられるスパムフィルターもあります。(基本的に、スパムはジャンク フォルダにあり、他のすべてのフォルダにはハムが含まれていると教えられます)
専用の「ニュースレター」フォルダーでこの動作を再現したいと思います。このフォルダには、すぐに表示または報告する必要がある緊急のメッセージは含まれていません。
計画では、電子メールを手動で「ニュース」フォルダーに入れ、スクリプトでこのフォルダーを 1 日 1 回スキャンする予定です。ふるいルールのないアドレスからのメールが見つかった場合、このアドレスからのメールを到着時に自動的に「ニュース」フォルダに入れるルールを作成する必要があります。
実現へのステップ:
このために、スクリプトは既存の .dovecot.sieve ファイルをスキャンし、「news-folder」ルールからアドレスを抽出して、比較のために別のファイルまたはオブジェクトにする必要があります。
/li>次に、「news」フォルダの maildir ディレクトリにあるすべての電子メールを処理し、電子メールで「From:」フィールドと尖った括弧で囲まれた電子メール アドレスを検索する必要があります。
/li>それらを sieve ファイルから抽出されたアドレスと比較し、アドレスにフィルター ルールがない場合
(たとえば、リストに見つからない場合) は、フィルター ルールを作成します (または単に抽出されたアドレスに追加します)。- すべての電子メールが処理された後、extracted_email_addresses-file を使用して「ニュース」フォルダーの新しいルールセットが作成され
、既存の dovecot.sieve が新しいルールセットに置き換えられます (念のため、古いルールセットは
前にコピーされます)。 - 新しいルールを読み込むために、後で dovecot の再起動も必要になるのでしょうか?
これまでの進捗状況:
bash コマンドとユーティリティを使用するだけで、これを機能させようとしました。これにより、dovecot.sieve ファイルから電子メール アドレスをほぼ抽出できるところまで到達しましたが、私の好みではかなり複雑で、時間がかかりました。
だから、多分pythonを使って、もっと簡単にそこにたどり着けないのだろうかと思いました。私は別のラズベリー プロジェクトでそれをいじりましたが、Python の世界に完全に没頭する時間がありませんでした。
だから私はここで正しい方向に少し助け/アドバイス/指摘してくれると嬉しいです.
これまで、抽出が必要な同様の問題(最初の部分)の解決策をいくつか見つけましたが、完全に適応できなかったか、スクリプトを実行できなかったため、いくつかの間違いを犯しました。
デバッガーなどを備えた Python 用の IDE も推奨できますか? Eclipse が頭に浮かびますか、それとも他に何かありますか (リソースをあまり消費しないかもしれません)。
regex - 角括弧の最初のペア内のすべてを一致させる方法
sieveで正規表現を作成しようとしています。私が使用しているふるいの実装はDovecot Pigeonholeです
私は github プロジェクトの更新を購読しており、次のような形式の件名で github から電子メールを受け取ります。
Re: [Opserver] 例外の詳細ページから Jira に課題を作成する (#77)
件名に含まれる角括弧内のプロジェクト名があります。私のふるいスクリプトの関連部分は次のとおりです。
上記からわかるように、メッセージを適切なプロジェクト IMAP フォルダーに移動しています。したがって、上記の件名のメッセージは最終的にSubscribtions.Github.Opserver
残念ながら、このスクリプトには小さな問題が 1 つあります。誰かが github の問題のタイトルに角かっこを追加すると、フィルターが壊れます。たとえば、件名が次の場合:
[プロジェクト] [見てください] - 非常に奇妙な問題
上記のフィルターはメッセージをSubscribtions.Github.Project] [please look at it
完全に望ましくないフォルダーに移動します。Subscribtions.Github.Project
とにかく移転してほしい。
これは、デフォルトで正規表現が貪欲であるために発生します。したがって、それらは可能な限り長い一致に一致します。しかし、私がそれを修正しようとすると、何も変更"\\[(.*)\\]"
しない通常の方法が変わる"\\[(.*?)\\]"
ようです。
この正規表現が期待どおりに動作するようにするにはどうすればよいですか?
postfix-mta - 電子メールをフィルタリングしないふるい
Postfix を Spamassassin でセットアップし、Dovecot を Sieve でセットアップしました。Spamassassin は、電子メールをスパムとしてタグ付けします。
Sieve に、SpamAssassin によって「スパム」とタグ付けされたメールをジャンク フォルダに移動させようとしています。しかし、そうではありません。私は自分が何を間違っているのかわからず、かなりイライラしています。
これが私のdovecot.confダンプです:
私の /etc/dovecot/sieve/sieve.default は次のとおりです。
「ジャンク」フォルダが存在します。電子メールのダンプは次のとおりです。
あるサーバーから別のサーバーへのこの電子メールをテストしていますが、送信者と受信者は同じマシンではありません。受信者は user@testmail.domain.tld で、送信者は user@domain.tld でした。メールは明らかにスパムとしてマークされています。
電子メールが迷惑メール フォルダーに移動されないのはなぜですか?