GoGPT Best VPN GoSearch

OnWorksファビコン

ぐるぎたてメール - クラウドでオンライン

OnWorks の無料ホスティング プロバイダーで、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターを介して gurgitate-mail を実行します。

これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks の無料ホスティング プロバイダーで実行できるコマンド gurgitate-mail です。

プログラム:

NAME


gurgitate-mail - 使いやすいメールフィルター

SYNOPSIS


ぐるぐるメール

DESCRIPTION


「gurgitate-mail」は、メールを読み取り、次の条件に従ってフィルタリングするプログラムです。
.gurgitate-rules.rb ホームディレクトリにあるファイル。 構成ファイルは Ruby 構文を使用します
したがって、非常に柔軟です。

通常、次のいずれかを介して呼び出されます。 。前方 ファイル:

"|/パス/to/gurgitate-mail"

またはあなたを通じて .procmailrc ファイル:

:0:
| /path/to/gurgitate-mail

あるいは、あなたがサイトのシステム管理者である場合、またはシステム管理者がフレンドリーな場合は、次のこともできます。
ローカル配送エージェントとして gurgitate-mail を使用します。 接尾辞の場合は、

mailbox_command=/opt/bin/gurgitate-mail

in /etc/postfix/main.cf。 他の MTA を使用し、gurgitate-mail を
地元の配送業者さん、方法を教えてください! これをドキュメントに含めたいと思います。

CONFIGURATION ファイル


gurgitate-mail で使用される設定ファイルは XNUMX つあります。XNUMX つはシステム全体に適用され、
XNUMX 番目はユーザー ルール ファイルです。

XNUMX つのシステム全体の構成ファイルは次のとおりです。 /etc/gurgitate-rules  
/etc/gurgitate-rules-default。 これらはユーザー ルールの前後で処理されます。


/etc/gurgitate-rules システム全体のフィルタリングのニーズを処理するために使用されます: デフォルトの設定
メールボックスのスタイルをデフォルトの MBox ではなく Maildir に変更し、スプール ディレクトリを設定するなど
そうですね。

ユーザー設定ファイルは $HOME/.gurgitate-rules (または、代わりに、
$HOME/.gurgitate-rules.rb。 どちらの作品でも)。 ここに独自のルールを設定します。 ユーザーの場合
設定ファイルの処理中に「リターン」が発生しなかった場合、追加の
に含まれるルール /etc/gurgitate-rules-default 実行されます。 それも戻らなかったら、
その後、メール メッセージはデフォルトのメール スプールの場所に保存されます。

コマンドラインで「-f」オプションを使用すると、指定されたファイルが使用されます。
デフォルトのルールはそうではありません。 「-f」オプションは複数回使用できます。

グルギットメール -f テストルール -f 追加ルール

CONFIGURATION パラメーター


グルギットメールの送信方法を変更するために設定できるパラメータがいくつかあります。
振る舞います。 たとえば、次のように言って構成パラメータを設定します。

送信メール "/ usr / sbin / sendmail"

これにより、「sendmail」パラメータが「/ usr / sbin / sendmail".

メールディレクトリ
メールフォルダーを配置するディレクトリ。 デフォルトは $HOME/Mail です。

ログファイル
gurgitate-mail のログ メッセージの行き先。 標準的な位置は、
これは $HOME/.gurgitate.log です

sendmail
メールの配信に使用される sendmail プログラムへのフルパス。 これはどのプログラムでも構いません
これはパラメータとしてメールを配信するアドレスのリストを受け取り、それは
標準入力のメールメッセージ。

ホームディレクトリ
ホームディレクトリのフルパス。 これは実際の自宅がデフォルトになります。
ディレクトリは です。

スプールディレクトリ
システムのメールスプールが送信されるパス。 これのデフォルトは「/var/スプール/メール".
Maildir システムでは、これを「homedir」と同じに設定する必要があります。

スプールファイル
メール スプールのフル パスのメール スプール ファイル コンポーネント。 これは一般的には
あなたのユーザーネーム。 Maildir ユーザーはこれを「Maildir」に設定する必要があります。

フォルダスタイル
お好みのフォルダーのスタイル。 これは (現時点では) MBox または Maildir のいずれかになります。

フィルタ RULES


フィルター ルールは、次のメソッドと変数を含む一連の Ruby ステートメントです。
入手可能:

変数

from これには、電子メール メッセージのエンベロープ「差出人」アドレスが含まれます。 (これに注意してください
「From:」ヘッダーの内容と必ずしも同じであるとは限りません)

ヘッダーの
これはメッセージのヘッダーを含むオブジェクトです。 いくつかの方法があります
このオブジェクトに付属するもの:

body 電子メール メッセージの本文が含まれます。 今のところ、特に何もありません
これに割り当てる以外に、これでできることは興味深いものです。 書き換えることができます
この方法で電子メールメッセージの本文を作成します。 添付ファイルの処理は、
「ぐるぎたてメール」の今後のリリース予定。

メールディレクトリ
フォルダーを含むディレクトリ。指定時に「save」メソッドで使用されます。
フォルダーを「=」フォルダ" (Elm と同様)。デフォルトは "$HOME/Mail" です。

ホームディレクトリ
ホームディレクトリ。 読み取り専用。

ログファイル
「gurgitate-mail」ログファイルの場所。 「nil」に設定すると、ログは記録されません。
終わり。 デフォルトは「$HOME/.gurgitate.log」です。

sendmail
「sendmail」プログラムの場所。 「forward」メソッドで使用されます。 デフォルトは
"/usr/lib/sendmail".

スプールファイル
メールスプールの場所。 読み取り専用。

メソッド

一致(名前、正規表現)
ヘッダー「name」が正規表現「regex」と一致する場合、「true」を返します。 もし
"name" はヘッダー名の配列であり、少なくとも XNUMX つがヘッダー名の場合は true を返します。
ヘッダーが一致します。 「To:」と「Cc:」の両方のヘッダーが一致するかどうかをテストするのに役立ちます。

from 電子メール メッセージのエンベロープ「差出人」アドレスを返します。 これも同じであることに注意してください
裸の「から」として。

to 「To」と「Cc」の内容を含む HeaderBag (一種の配列) を返します。
ヘッダー。

to_s Ruby の規則に従い、すべてのヘッダーを「String」オブジェクトとして返します。

保存(郵便受け)
これにより、メッセージがメールボックスに保存されます。 = を使用してメールボックスを単語として指定できます。
その前に署名を付けます。この場合、それは「maildir」に置かれます。 を使用しない場合は、
= 形式の場合は、絶対パス名を指定する必要があります。 書き込めない場合は、
リクエストしたファイルにメッセージを送信すると、「spoolfile」への書き込みが試行されます。

転送(アドレス)
これにより、電子メール メッセージが別の電子メール アドレスに転送されます。

パイプ(プログラム)
これにより、メッセージが「プログラム」を通じてパイプされます。 「pipe」は終了コードを返します。
メッセージがパイプで送信されたプログラム。

フィルター(プログラム)
これにより、「プログラム」を通じてメッセージがパイプされ、新しい Gurgitate オブジェクトが返されます。
フィルタリングされたメールが含まれます。 (これは電子メールを変更する外部フィルターに便利です
たとえば、スパムスコアヘッダーを追加する SpamAssassin など)。

あなたも言うことができます

フィルター(プログラム)を行う
# ここにコードを書きます
end

そして、新しく作成された Gurgitate オブジェクトをブロックに渡します。

ヘッダーの
これにより、ヘッダーが独自のオブジェクトとして返されます。 このオブジェクトには独自のメソッドがあります。

ヘッダー[*ヘッダー名]
これにより、要求したヘッダーを含む HeaderBag (配列のサブクラス) が返されます。
のために。 この結果に対して =~ 演算子を使用して、RHS 正規表現と一致させることができます。
HeaderBag 内のすべてのものを含めます。

「headers[name]=newvalue」でヘッダーの値を変更できます。

headers.match(名前,正規表現)
「name」という名前のヘッダーを正規表現と照合します。 これは以下と同じです
headers[name] =~ /regex/.

headers.matches(name,regex)
「names」という名前のヘッダーを正規表現と照合します。 これも同じです
headers[*names] =~ /regex/ として。

ヘッダー.から
から封筒を返します。 これは「headers.from=newaddress」で変更できます。
のためにペンを持つ時間も見つけています。

return
これにより、「gurgitate-mail」に電子メール メッセージの処理を停止するように指示されます。 使用しない場合
"return" を実行すると、"gurgitate-mail" は再度同じメールの処理を続行します。
次のルール。 最後に「戻る」がない場合 グルギタテ-ルール.rbをタップし、その後、
「gurgitate-mail」は、電子メール メッセージを通常のメール スプールに保存します。

ログ(メッセージ)
これにより、ログ メッセージがログ ファイルに書き込まれます。

SIMPLE


以下に、「ぐるぐるメール」ルールの例と説明をいくつか示します。

=~ /ebay.com/ からの場合、save("=ebay"); 戻る; 終わり

eBay からのすべての電子メール (オークション終了の自動通知、入札超過など)
通知) は「ebay」フォルダーにファイルされます。

=~ からの場合 /ルート@/ 次に save("=root"); 戻る; 終わり

(任意のホストの) ルートからの電子メールは、特別なフォルダーにファイルされます。 システム管理者にとって便利
crontab メールを監視しています。

if headers.matches(["To","Cc"],"webmaster@") then
save("=ウェブマスター")
return
end

To: または Cc: 行が「sysadmin」である電子メールは、「sysadmin」フォルダーに保存されます。 役に立つ
複数のロールアカウントを持つユーザーの場合は、自分のアドレスにリダイレクトされます。

if headers["Subject"] =~ /\[SPAM\]/ then
save("=スパム")
return
end

これは、ヘッダーに対してパターンを照合するための別の構文です。 合わせることもできます
角括弧内の複数のヘッダー。

if headers["Subject","Keywords"] =~ /悪い言葉/ then
save("=誓う")
return
end

件名とキーワードのヘッダーで「悪い単語」を検索し、存在する場合は保存します
「宣誓」フォルダ内のメール。

if headers.matches(["To","Cc"],"[メール保護]") それから
Pipe("|rcvstore +メーリングリスト")
return
end

メーリング リストへの電子メールはすべて、「rcvstore」を介してパイプ処理され、MH フォルダーに保存されます。

それ

headers.matches(["To","Cc"],/regex/)

このイディオムはよく使われるので、その略語があります。

if to =~ /[メール保護]/ それから
Pipe("|rcvstore +メーリングリスト")
return
end

「rcvstore」を通じてメールをメーリング リストにパイプします。

高度な


ここでは、何ができるかを示すために、もう少し賢い例をいくつか示します。
「ぐるぐるメール」。 というファイルに電子メールのホワイトリストがあるとします。
$HOME/.friends, したがって、一部の電子メールがスパムである可能性があるかどうかを判断できます。

ホワイトリスト上の誰かがあなたに電子メールを送信すると、それを自動的に保存します。
「受信箱」フォルダー:

friends=homedir+"/.friends"
FileTest.exists?(友達) と FileTest.readable?(友達) の場合
File.new(friends).each は |friend| を実行します。
=~ friends.chomp からの場合は、
ログ「友人からのメール」+friend.chomp
save("=受信箱")
return
end
end
end

さて、誰かがあなたにメールを送ってきて、それがあなた宛てに宛てられたものであるとします(そして、グルギット-
メールはまだ別の形式でそれを捕捉していません)、その場合、それはスパムである可能性があるか、そうでない可能性があります。
「灰色」のフォルダーに入れます。

my_addresses= [ /me@example\.com/i,
/me@example\.org/i、
/me@example\.net/i]; # メールアドレスが XNUMX つあります
my_addresses.each は |addr| を実行します。
if headers.matches(["To","Cc"],addr) then
save("=スパムではない可能性があります")
return
end
end

その後、それがあなたの知っている人からのものでなく、あなたのメールアドレス宛てに届いたものでもない場合は、
どちらかのアドレスを指定した場合は、それがスパムであると考えても問題ないでしょう。

save("=スパム")
return

ただし、これはベイジアン フィルターを使用することで改善できます。 たとえば、エリック・レイモンドの
ボゴフィルター プログラム (http://bogofilter.sourceforge.net) を自動的にトレーニングでき、
白/グレー/黒の区別を利用して使用されます。 上の例で言えば、
bogofilter への呼び出しを追加して調整します。

friends=homedir+"/.friends"
FileTest.exists?(友達) と FileTest.readable?(友達) の場合
File.new(friends).each は |friend| を実行します。
=~ friends.chomp からの場合は、
ログ「友人からのメール」+friend.chomp
Pipe("bogofilter -h") # <-- ここに行を追加しました
save("=受信箱")
return
end
end
end

「bogofilter -h」は、ホワイトリストに登録されている人からのメールが受信されないように bogofilter を訓練します。
スパムとみなされます。 さて、.gurgitate-rules の最後で、変更します

save("=スパム")
return

〜へ

save("=スパム")
パイプ("ボゴフィルター -s")
return

これは、フィルターの残りの部分を通過しないものはすべて「bogofilter」である必要があることをトレーニングします。
スパムとみなされます。 ここで興味深い部分について説明します。これらの間のビットを変更して使用します。
電子メールをスパムとみなすかどうかを決定する「bogofilter」:

my_addresses= [ /me@example\.com/i,
/me@example\.org/i、
/me@example\.net/i]; # メールアドレスが XNUMX つあります
my_addresses.each は |addr| を実行します。
if headers.matches(["To","Cc"],addr) then
if パイプ("ボゴフィルター")==1
その後
log("bogofilter はスパムではない可能性があると疑っています")
save("=スパムではない可能性があります")
ほかに
log("bogofilter はおそらくスパムだと考えています")
save("=スパム")
end
return
end
end

「bogofilter」の終了コードは、メッセージがスパムではないと判断した場合は「1」、スパムではない場合は「0」になります。
メッセージはスパムだと思います。

これで、どのようなものを使用できるかがわかると思います。
「ボゴフィルター」用。

onworks.net サービスを使用してオンラインでグルギタテメールを使用する


無料のサーバーとワークステーション

Windows と Linux のアプリをダウンロード

Linuxコマンド

Ad




×
Advertisement
❤️ここでショッピング、予約、購入してください。料金はかかりません。これにより、サービスが無料で維持されます。