
phpでメールアドレス入力のファームを作成しようと思います。
aaaaa@aaaaa.ne.jp
とか入ってくるとして、
どのような入力チェックが必要ですか?
最終的には送らないと分からないとしても、mail()関数が受け付けない文字列ぐらいは事前にはじきたいです。
「この関数で一発だよ」みたいなのがあるとか、
地道にこれとこれをチェックするのが一般的とか、
あと、
「info@日本語ドメイン.jp」みたいにメールアドレスに日本語ドメインってありえるのでしょうか?
どなたかご教授下さい。
No.1ベストアンサー
- 回答日時:
if( preg_match( "/^[-_\.a-zA-Z0-9]+\@[-_a-zA-Z0-9]+\.[-_\.a-zA-Z0-9]+$/", $mailaddress ] ) == false ) {
だめ
}
私は基本的にこういうチェックを行ってます
この回答への補足
具体的なコマンド助かります。
あとは、
日本語ドメインのメールアドレスってあるの?
ってところだけ気になってます。
どうなのでしょうか?
No.2
- 回答日時:
getmxrr()やgethostbyname()を併用すれば
若干は精度をあげることができます。
function checkMail($num) {
if (preg_match("/[^-._~@\w]+/", $num)) return false;
$hostname = substr($num, strpos($num, "@")+1);
$mxcheck = getmxrr($hostname, $mxhosts);
$hostcheck = ($hostname != gethostbyname($hostname));
if (!$mxcheck and !$hostcheck) return false;
return true;
}
マルチバイトドメインのメールはないとは
いいきれませんが、迷惑なのでチェックで
はじいてしまってかまわないと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
preg_matchの正規表現で
-
preg_matchでエラーが出ます。
-
正規表現で特定のHTMLタグのク...
-
VBAのコマンドボタンの文字列の...
-
Accessの文字数を調べたい
-
メッセージボックスで1025文字...
-
Nvuで作成したhtmlをコピペして...
-
VBAでCSVをExcelに取り込む時に...
-
文字化け変換方法
-
エクセルのCOUNTIFが正しくカウ...
-
mb_ereg_replaceに関して
-
ラベル(スタティックテキスト)...
-
phpの正規表現でstyle="●●"を削...
-
PHP cURLでPOSTした値が文字化...
-
マクロでセル内の改行を削除す...
-
バーコード入力と手入力の判断...
-
カンマの含まれる文字列の数値...
-
PHP+Postgres 「髙」が文字化け
-
C++で空Enterの入力を判...
-
マクロで半角を全角に
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで数字のみを2倍3倍にする...
-
、"(ダブルクォーテーション)...
-
PHPの「ereg」って何の略で...
-
Smartyで部分一致
-
preg_matchでエラーが出ます。
-
HTMLファイルからCSSファイル名...
-
http://とhttps://のどちらでも...
-
phpで文字列に"や'などが含まれ...
-
正規表現で「0」のみ抽出
-
VBAを使ってHTMLソースから特定...
-
PHPで変数から1行目だけを取得...
-
ここで「文字列連結演算子」が...
-
\\bとはなんでしょうか?
-
正規表現でシングルクォーテー...
-
preg_matchでのマッチが正しく...
-
PHPで<a>タグ内からURLと文字を...
-
PHPメールフォーム URLと半角...
-
漢字を含んだ正規表現
-
preg_matchの検索について
-
PHPで あるフォルダ内の、特定...
おすすめ情報