既然ICann允許非拉丁字符域名,我應該關心電子郵件驗證嗎?目前,我的網站正在使用php函數來確保在電子郵件地址的每個段中設置一些字母數字字符集。這些其他字符集,例如西里爾文,阿拉伯文和中文是否會通過驗證?有沒有建議使用PHP功能?非拉丁郵件地址驗證
11
A
回答
0
我打算推薦使用filter_var()
和FILTER_VALIDATE_EMAIL
過濾器。但在谷歌搜索後,它變成了doesn't support multi-byte characters呢。現在看來,最好的辦法是strip out non-latin characters並對此進行通常的驗證(儘管checkdnsrr顯然會失敗,因爲您已經通過刪除非拉丁字符並將它們替換爲拉丁等號來更改域名,所以如果您使用它來驗證電子郵件域的MX記錄,那麼您將需要暫時禁用該記錄)。
+0
即使處理非多字節字符,FILTER_VALIDATE_EMAIL也顯得過於嚴格。 – 2010-05-25 06:17:27
1
我認爲最終最好的方法是使用正確的IDN函數將傳入的字符串轉換爲ACE字符串(xn--xyz-blah.com
)。如果該過程起作用,則域名是有效的。如果不是,它不是。
有一個名爲idn_to_ascii()
的PHP函數執行此操作,但它需要額外的庫。您必須查看它是否在您的系統上可用。
似乎還有一個名爲idn
的外部Linux命令進行IDN轉換。不過,我對此還不甚瞭解。
如果您只想使用PHP內置方法,delfuego會在this question中提供一個非常好的正則表達式。
相關問題
- 1. 驗證電子郵件地址
- 2. ASP.NET的電子郵件地址驗證
- 3. 電子郵件地址驗證
- 4. 驗證電子郵件地址失敗
- 5. ListView驗證電子郵件地址
- 6. iOS電子郵件地址驗證
- 7. 如何驗證電子郵件地址
- 8. python/django中的郵件地址驗證
- 9. 554郵件被拒絕:電子郵件地址未驗證
- 10. 美國地址驗證(郵編+ 4)
- 11. 地址驗證
- 12. 地址驗證
- 13. 從文本文件驗證電子郵件地址?
- 14. jQuery的驗證插件多個電子郵件地址
- 15. 如何驗證CSV文件上的電子郵件地址:: laravel
- 16. IP地址驗證
- 17. 驗證地址 - PHP
- 18. 驗證ASP.NET C#上的自定義ac.uk地址的電子郵件地址
- 19. 電子郵件地址驗證的最佳做法(包括Gmail中的+地址)
- 20. CodeIgniter:如何發送非拉丁字符的HTML電子郵件
- 21. 發送郵件inludes非拉丁字符與python
- 22. 驗證在JavaScript/Angular/Ionic mx記錄驗證的電子郵件地址
- 23. 確實需要驗證新用戶的電子郵件地址驗證嗎?
- 24. 在非拉丁文-1文件中查找非拉丁文文本的片段?
- 25. 如何在php中驗證電子郵件地址?
- 26. jQuery表單驗證,只允許.EDU電子郵件地址
- 27. jquery驗證,添加,刪除電子郵件地址
- 28. 在Angular驗證電子郵件地址2.3.1
- 29. 從javascript驗證無法識別的電子郵件地址
- 30. Zend驗證電子郵件地址和深度MX檢查
+1 ex:'info @müller.de' – 2010-05-24 18:24:30
@John Conde:你已經輸入了它,請發佈它,以便我們可以註冊除了你的評論以外的東西。 – salathe 2010-05-24 19:49:05
嗯,這不是一個很好的解決方案,但至少它解釋了PHP目前站在這個地方。希望發問者爲他們以前的問題選擇一些解決方案。他們有一些很好的答案。 – 2010-05-24 20:13:57