• ベストアンサー

正規表現でのスパム拒否

現在、海外からのスパムに悩まされています。 仕事上、英文のメールをすべて拒否できないので、 xxx@xxx.br などの来るはずのないカントリーコードのメールを すべて拒否したいと思うのですが、 メールサーバでは正規表現でしか拒否指定できない仕様なので なかなかうまくいかず困っています。 .br、.cl、.dk などのトップレベルドメインのメールを全拒否したいのですが、 この場合の正規表現の記述はどう書けば良いのでしょうか? 何卒宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • Donotrely
  • ベストアンサー率41% (537/1280)
回答No.2

#1です。 動作保証ができないのは変わりませんが、1箇所間違いを見つけました。 .+@.+\.(br$|br>|br ) や .+@.+\.(cl$|cl>|cl ) や .+@.+\.(dk$|dk>|dk ) もしかしたら、 .+@.+\.br($|>| ) や .+@.+\.cl($|>| ) や .+@.+\.dk($|>| ) です。

AINH398
質問者

お礼

ご回答どうもありがとうございます。 とりあえずやってみます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Donotrely
  • ベストアンサー率41% (537/1280)
回答No.1

振り分けならともかく受信拒否だと責任持てませんが、 fromで .+@.+\.(br$|br>|br( *)) や .+@.+\.(cl$|cl>|cl( *)) や .+@.+\.(dk$|dk>|dk( *)) をはねればいいのでは? もしかしたら、 .+@.+\.br($|>|( *)) や .+@.+\.cl($|>|( *)) や .+@.+\.dk($|>|( *)) でいけるかもしれません。 試せないので全然自信ありません。 動かなくてもこれ以上はコメントできません。 識者に頼むかご自分で勉強して下さい。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • スパムメールをブロックするための正規表現について

    スパムメールをブロックするための正規表現について教えてください。  正規表現が使用できるメーラーで使ってみたいと思います。そのための正規表現の一覧、どのようなものが役立つかを教えてください。

  • Outlook2007で正規表現で仕分けたい

    Outlook2007を使っています。 最近、*******.infoというドメインのメールアドレスから頻繁にスパムメールが届きます。 *******の部分は英数字7桁のランダムで、数日毎に新しくしているらしく、 ドメインでの単純なフィルタリングでは対処できません。 迷惑メールの処理レベルを「高」にすれば良いのかもしれませんが、 説明文には「通常のメールも処理されるかも」と書かれており、それはさすがにNGです。 しかしこのスパムのメールアドレスは、正規表現なら容易に判別できます。 アカウント部分も3種類しか無いようなので、 [mag|info|mail]@[a-z0-9]{7}\.info とでも書けば一発です。 そこで質問なのですが、Outlook2007で正規表現を使ったメール仕分けはできないのでしょうか。 ご存知の方いましたら、よろしくお願い致します。

  • 秀丸メールの正規表現について質問です。

    仕事で秀丸メール(バージョン5.0)を使っているのですが、正規表現を使って溜まっているスパムメールを検索して一気に削除したいのです。なにか良い正規表現はございませんでしょうか?(外国語・日本語のスパムすべて) なお、事情があって迷惑メールフィルターは利用できず、溜まっているスパムの数も膨大で非常に困っております。

  • 正規表現でスパム投稿をブロックしたい

    現在↓このような正規表現でアルファベット及び記号をブロックし、なるべく日本語が含まれていないと、スパム扱いになるよういしました。 //SPAMフィルター function mb_check($str){ if(ereg("^[\x41-\x5A|\x61-\x7A|\x30-\x3F|\x21-\x2F|[:space:]]+$",$str)){   return False;  }else{   return True;  } } しかし、これでも、スパム書き込み来ることがあるので、 これにあらたに ”httpという文字列が含まれていたら”という条件を 足すことにしました。 しかし、その記述の方法がよく分かりません。 これに、”httpという文字列が含まれていたら”とういう条件を足すには どのように記述すればよいのでしょうか?

    • ベストアンサー
    • PHP
  • 正規表現を教えてください。

    SPAMの自動削除をするツールを使っています。 RE:という3文字だけのタイトルのメールがきたら削除させたいのですが、私の使っているツールはRE:という文字を指定するとRE:が先頭に付いているタイトルのメールを全て削除してしまいます。 つまり指定した文字を含むという条件だけが指定可能で、指定した文字と長さも一致という条件は指定できません。 ただ、このツールは正規表現も使用できるようです。 そこで、RE:という3文字だけの時は真となり、RE:の後ろに文字が付いているときには偽となる正規表現を教えてください。

  • 正規表現の書き方について

    $a=aaaaaaあああ1111いいい2222; 上記の$aを <br>aaaaa<br>aあああ<br>1111いいい<br>22222<br> このようにしたいのですが、 条件1:半角英数字の頭に<br> 条件2:半角英数字が5つ続いたら<br> としたいのですが、正規表現の記述方法で悩んでいます。 $b=preg_match([a-zA-Z0-9],$a)がに該当したら これで受け取ったものをpreg_replace<br>で挟む?のでしょうか。 そもそも条件は1つ以上指定できないのかもしれませんが・・・。 何かご存知の方いましたらご教授お願いいたします。

    • ベストアンサー
    • PHP
  • 正規表現に詳しい方、教えてください。

    正規表現に詳しい方、どうか教えてください。 思うように動作してくれなくて困っています。 「Spam Mail Killer」というフリーソフトで (http://www.vector.co.jp/soft/win95/net/se225316.html) 正規表現でスパムメールかどうかの判断をさせたいのです。 (このソフトはBREGEXP.DLLを使っているそうです。) たとえば、 http://www.abcdef.com/deai.htm (このURLは架空のものです) のように「deai」を含むURLが書かれたメールにヒットするようにと思って、次のように書きました。 ##/(http://)[-/\.A-Za-z0-9]*(deai)[-/\.A-Za-z0-9]+/ しかし、これを実際にテストしてみると「deai」を含むメールにヒットしません。 ()を外すと、「deai」を含まないURLにもヒットしてしまいます。 自分でもそれなりに調べてみたのですが、どうにもお手上げです。 正規表現に詳しい方、どうかアドバイスをお願いします。

  • 正規表現で置換

    その1 $str = "ほげほげほげ<a href="http://xxxx.xxxx.xxx/xxxx/">ほげほげほげ</a>ほげほげ<br /><br /><img src="http://yyy.hoge.jp/hage/hige/xxxx.jpg" width="320" height="240" />ほげほげ"; ↓ $str = "ほげほげほげ<a href="http://xxxx.xxxx.xxx/xxxx/">ほげほげほげ</a>ほげほげ<br /><br /><img src="./foo/faa/fii/xxx.jpg" width="320" height="240" />ほげほげ"; その2 $str = "<img src="http://yyy.hoge.jp/hage/hige/xxxx.jpg" width="320" height="240" />ほげほげほげ<a href="http://xxxx.xxxx.xxx/xxxx/">ほげほげほげ</a>ほげほげ<br /><br /><img src="http://yyy.hoge.jp/hage/hige/xxxx.jpg" width="320" height="240" />ほげほげ"; ↓ $str = "<img src="./foo/xxxx.jpg" width="320" height="240" />ほげほげほげ<a href="http://xxxx.xxxx.xxx/xxxx/">ほげほげほげ</a>ほげほげ<br /><br /><img src="./foo/faa/fii/xxx.jpg" width="320" height="240" />ほげほげ"; このような文字列があった時に、次のように従って置換したいです。 1.imgのタグの内部に、「http://yyy.hoge.jp/hage/hige/xxx.jpg」という文字列があった場合、「./foo/faa/fii/xxx.jpg」という文字列に置き換える。 2.それ以外のURLの場合は置換しない。 3.その1とその2では「xxx.jpg」となっていますが、jpg以外の拡張子の場合も存在する。 4.日本語とURLの位置や個数はバラバラです。 5.URLの中のxxxとyyyは不定の文字列で、hage、hoge、hige、foo、faa、fiiは固定です。 6.使用している言語はPHPです。正規表現を1度だけでできれば理想的ですが、今回は2回に渡った処理でも問題ありません。 以上です。正しく処理できる正規表現、あるいは下記の正規表現の誤りを教えて頂ければ幸いです。 お手数ですが、よろしくお願い致します。 下記の方法では、うまくできませんでした。 $pattern = "/http:\/\/.*?hoge.jp\//"; $replacement = "./"; $str= preg_replace($pattern, $replacement, $str); $pattern2 = '/\/?hage\/hoge/'; $str = preg_replace($pattern2, '/foo/faa/fii', $str);

    • ベストアンサー
    • PHP
  • 正規表現について

    PHP5.2.4を使用しています。 1文字以上のアルファベットと数字の組み合わせは許可(含めて) かつ 「ab」は許可しない(含めない) という正規表現はどのように記述すれば良いのでしょうか?(「01ab」「abc」は許可、「ab」は許可しない) 一応自分なりに考えてみたのですが、 $str = "abc"; if (preg_match("/[^(ab)][a-z0-9]+/", $str)) { print "match<br>\n"; } やはり駄目でした・・・

    • ベストアンサー
    • PHP
  • 正規表現にて、複数の単語を指定する方法

    質問タイトルが意味不明だったらすみません。 当方、Perlが何であるかも知らないド素人です(^^U どなたか正規表現の書き方をお教えくださいませ。   現在わたくしは、海外在住の友人がPCのセキュリティを怠っていた事が原因で、 海外から一日に数十通届いてしまうスパムメールに頭を悩ませております。 わたくしが使っているプロバイダー『WAKWAK』では、迷惑メールのブロック機能はあるのですが、 件名に含まれている単語もしくはアドレスを指定してブロックするという、ごく基本的な設定は簡単にできるものの、 それ以上細かい指定になると正規表現で記述しなければいけないという、素人には非常にキビシイものになっており、困り果てております。 そこで、どなたか --------------------------------------------------------------------------------- アドレスの最後が『.com』となっているもののうち、 友人が使っている『~hotmail.com』や『~yahoo.com』(や、その他いくつかのドメイン) 以外をブロックするための記述 --------------------------------------------------------------------------------- を教えて頂けませんでしょうか? ちなみに、WAKWAKのメールブロックの指定方法は、 まず"from" "Received" "Return-path"などの、どの部分にかかるのかを指定してから 正規表現を記入するようになっています。 (※参考URL(設定方法画面)はhttp://www.wakwak.com/info/mail/guide_mail.html です。) お時間のある時にどうぞよろしくお願い申し上げます。

    • ベストアンサー
    • Perl