2017-09-29 3 views
1

私は自分自身にメールを送信するので、この電子メールアドレスが動作することを知っています。では、なぜこのコードは私がそれをするべきだとは思わないのでしょうか?PHPのFILTER_VALIDATE_EMAILが私の働く電子メールアドレスが無効であると言っているのはなぜですか?

$email = 'enquiry_b[email protected]uat.abc.com'; 
if (filter_var($email, FILTER_VALIDATE_EMAIL)) 
{ 
    print 'is valid'; 
} 
else 
{ 
    print 'is not valid'; 
} 

"is not valid"と表示されます。しかし、私はかなり電子メールアドレスが正しいと確信しています。それはおそらく長すぎると彼らはいくつかの特定の長さをチェック?電子メールアドレスを最後に確認したときの長さは最大255文字です。

これはなぜ起こっているのですか?

UPDATE 1

私はこれにそれを短絡した場合:

$email = 'e[email protected]uat.abc.com'; 

そして、それが動作します。だから私はここで答えを見つけ

+0

電子メールアドレスは、電子メールを実際に送信し、ユーザーがその中のリンクをクリックするか、または別の方法で受信を確認するのとは別に、検証することは事実上不可能です。 – Sammitch

+1

[バリデーターは間違っていません](https://stackoverflow.com/questions/386294/what-is-the-maximum-length-of-a-valid-email-address)そのアドレスは、許可された長さの制限: "...メールボックスは、パスを256未満に保つために254文字以下でなければなりません"。 – tadman

+2

私はここで答えを見つけました:https://stackoverflow.com/questions/21631366/php-filter-validate-email-max-length ...電子メールアドレスの「ローカル」部分は64文字です。 – coderama

答えて

0

...で蹴る最大長さのいくつかの種類が存在しなければならない:PHP FILTER_VALIDATE_EMAIL max length

問題は、ローカル部分(@の前の部分)が唯一の長さは64文字にすることです。それにもかかわらずCentosで働いています。 PHP Validate Functionには、それがチェックする独自の制限があります。

関連する問題