- ベストアンサー
メールアドレスの拒否方法を解説
- 最近、フリーメールアドレスを使用したスパム登録に悩まされている方へ、特定のメールアドレスを拒否する方法を解説します。
- 以下の方法を用いて、指定したメールアドレスを登録できないようにすることができます。
- 正確な記述方法をお知りになりたい方は、ぜひご覧ください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>@denyemail = ("abc@yahoo.co.jp","abc@gmail.com"); 値を " でくくってるから @ を配列のプレフィクスとして認識してしまうからではないでしょーか? 単純に @denyemail = ('abc@yahoo.co.jp','abc@gmail.com'); で行けません?
その他の回答 (2)
- taporu
- ベストアンサー率44% (46/104)
僕の環境では引っかかったので、何か違う理由かもしれませんが、 配列ではない、ということで、\@してみて下さい。 これでもダメだったら、@を.(ピリオド)に変えて下さい。 ピリオドは正規表現で任意の一文字という意味です。
お礼
ご回答ありがとうございました。 下のNO.2のご回答のようにすれば上手くできました。
- taporu
- ベストアンサー率44% (46/104)
引っかかりますけど?? gabc@yahoo.co.jp でも引っかかるっていうことでしょうか? でしたら、 if ($email =~ /$_/i)を if ($email =~ /^($_)$/i) にかえてください。
お礼
この度はご回答頂きありがとうございました。 色々と試してみました結果“@(アットマーク)”があると引っかからないようです。 以下のようにすると引っかかりました。 @denyemail = ("yahoo.co.jp","gmail.com"); ----------------------------------------------------------------- foreach(@denyemail){ if ($email =~ /$_/i){ &error("このメールアドレスは登録できません。"); } } ----------------------------------------------------------------- その代わり、yahooメールやgmailは全て拒否することになってしまいますが・・・。 @(アットマーク)を認識させるには、何か特別な記述が必要なのでしょうか?
お礼
ご回答ありがとうございました。 お教え頂いた通りに変更したら上手く引っかかるようになりました! 大変助かりました。 この度はどうもありがとうございました。