woff 發表於 2014-5-27 18:22:44

PHP 符合 RFC 規範的 Email 驗證程式

要驗證 Email 是否符合規格, 大部分是使用下面的簡單 Regular expression 來作驗證 (下面兩者 regex 是一樣的, 只是 php / rails 版的寫法而已)
[*]preg_match('/^([^@\s]+)@((?:[-a-z0-9]+\.)+{2,})$/', $email) // 正確: true, 錯誤: false
[*]validates_format_of :email, :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+{2,})$/i, :message => '格式錯誤'
使用上述的檢查後, 再加上 PHP 驗證 Email -檢查 DNS 的 MX 是否有通, 再來就該直接寄信去驗證了.
在前面那段 regex 的驗證, Dominic Sayers 把 RFC 1123, 2396, 3696, 4291, 4343, 5321 &5322 看完, 寫出下面的 PHP function, 此 function 也有附上 unit test 的測試資料, 是我看過最複雜的檢查了. XD轉載此 Function: (Source: RFC-compliant email address validator)描述: A PHP function that validates all parts of a given email address, according to RFCs 1123, 2396, 3696, 4291, 4343, 5321 & 5322. I’ve released it under a license that allows you to use it royalty-free in commercial or non-commercial work, subject to a few conditions. It’s almost certainly the first email address validator that correctly lets you put an IPv6 address in for the domain part.


vftqp 發表於 2014-9-7 20:53:27

强烈感谢楼主











bjcars.net

优化到撒 發表於 2014-11-25 08:40:34



先支持了再说

oybkk 發表於 2015-10-28 21:54:43

支持楼主,辛苦了
頁: [1]
查看完整版本: PHP 符合 RFC 規範的 Email 驗證程式