我今天必須進行一些挖掘才能找到它,但是您知道電子郵件地址的有效長度是多少嗎? 它實際上被分成了幾個部分…… 名稱@ Domain.com。 這是根據 RFC2822.
- 名稱可以是1到64個字符。
- 域可以是1到255個字符。
哇...這意味著這可能是有效的電子郵件地址:
氯麥角ad
gaelitanullamc @ loremaipsumadolorasitaametbaconsect
長尾鴝鷸
LaaluctuscaPellentesqueatinciduntbadiamaidacondimn
土瓜瘤胃
枸al酸膽鹼
ciduntaturpisaduis.com
嘗試將其安裝在名片上! 具有諷刺意味的是,大多數電子郵件地址字段在網絡上限制為100個字符。 這實際上是無效的。 如果您想驗證使用PHP進行正確構造的電子郵件地址,我在網上找到了以下代碼段:
http://derrick.pallas.us/email-validator/#許可證:學術免費許可證2.1#版本:2006-12-01a if(!ereg(''。'^'。'[-!#$%&\ '* + / 0-9 =?AZ ^ _a-z {|}〜]'。'(\\。?[-!#$%&\'* + / 0-9 =?AZ ^ _a-z { |}〜])*'。'@'。'[a-zA-Z](-?[a-zA-Z0-9])*'。'(\\。[a-zA-Z](- ?[a-zA-Z0-9])*)+'。'$',$ email)))返回false; list($ local,$ domain)= split(“ @”,$ email,2); if(strlen($ local)> 64 || strlen($ domain)> 255)返回false; 如果($ check &&!gethostbynamel($ domain))返回false; 返回true; # 結束 ###### }
我很高興有人發現它有用! 在Google上搜索“電子郵件正則表達式”會發現許多與RFC不同步的正則表達式。
是的,我注意到其他解決方案也缺乏與RFC的合規性。 不過,我注意到,即使這個正則表達式也不是標準的,也不是標準的。 我記得對於大多數進程而言,閱讀實際的正則表達式(允許<,>,等)過於密集。
但是,它寫的簡潔,絕對是任何企業電子郵件應用程序都可以接受的解決方案。
再次感謝!
道格
不幸的是,我將該頁面鏈接到錯誤的RFC(2821而不是2822),但已得到糾正。 尖括號不能是電子郵件地址的本地或域部分的一部分; 相反,它們表示標記化點,即,由於它們不能成為地址的一部分,因此它們可以用於包圍電子郵件地址(例如,在您的郵件閱讀器中)。
我的功能不執行的一件事是擔心電子郵件地址的引號形式(本地部分用雙引號引起),因為RFC2821本質上說,沒有人應該這樣寫。 (我認為此表格是為了向後兼容,現在是不好的做法。)
實際上,RFC2821是電子郵件地址長度的正確參考。 我在這裡找到了它,但在RFC 2822中卻找不到。
RFC 2821中對MAIL和RCPT命令中的256個字符的地址長度有限制。 地址長度的上限通常應認為是256。
—來源:RFC 3696勘誤
另外,由於RFC 2181指出“完整的域名限制為255個八位字節”,因此人們(包括其他RFC的作者)反復將其誤解為域名的長度為255個字符。 但是RFC2181討論的是DNS協議級別的在線表示,而不是可打印字符。
域名的最大長度為253個字符(254個字符,包括結尾的點,在線上為255個八位字節,結尾為null)。 這就是BIND和DiG的實現方式。
開發人員低估了電子郵件地址的潛在大小已引起一些問題: http://www.eph.co.uk/resources/email-address-le...
我想如果您的電子郵件地址像“ jack1983@aol.com”之類的小東西,您可能會認為即使30個字符也是足夠的。
抱歉,以上網址已損壞...
開發人員低估了電子郵件地址的潛在大小已引起一些問題:
http://www.eph.co.uk/resources/email-address-leng...
我想如果您的電子郵件地址像“ jack1983@aol.com”之類的小東西,您可能會認為即使30個字符也是足夠的。
剛剛發現了這個帖子……很熱鬧。 我想知道我是否可以註冊該域。