non-latin-posta adresi doğrulama

2 Cevap php

ICANN olmayan latin-karakter etki alanı adları izin veriyor Şimdi, ben e-posta doğrulama endişe olmalıdır? Şu anda, benim siteler bir e-posta adresi her segmentte bazı alfa-sayısal karakter kümesi sağlamak için php fonksiyonlarını kullanıyor. Böyle Kiril, Arapça ve Çince gibi bu diğer karakter setleri, doğrulama geçecek? Bunun için kullanmak için php fonksiyonlarını orada tavsiye edilir?

2 Cevap

Ben sonuçta en iyi yolu, bir ACE dizeye gelen dize dönüştürmek için uygun bir IDN işlevini kullanarak olacağını düşünüyorum (xn--xyz-blah.com). Bu süreç çalışırsa, alan adı geçerlidir. Eğer bu olmuyorsa, o değil.

Orada bunu yapar idn_to_ascii() adında bir PHP işlevi olduğunu, ancak ek kütüphaneleri gerekiyor. Bunu sisteminizde mevcut olup olmadığını görmek gerekiyor.

Ayrıca IDN dönüşümleri yapar idn adında harici bir Linux komut gibi görünüyor. Ama, bu konuda daha fazla bir şey bilmiyorum.

Built-in tek yöntem PHP kullanmak istiyorsanız, delfuego çok iyi görünüyor this question düzenli bir ifade sağlar.

I filter_var() with the FILTER_VALIDATE_EMAIL filter. But after a Google search it turns out it doesn't support multi-byte characters henüz kullanarak tavsiye gidiyordu. Şimdi, en iyi bahis strip out non-latin characters olduğunu ve buna karşı her zamanki doğrulamaları gerçekleştirmek gibi kaldırarak olmayan tarafından etki alanı değişti beri checkdnsrr Açıkçası başarısız olur rağmen (görünüyor Eğer e-postanın etki MX kayıtlarını doğrulamak için kullanırsanız, Latin karakterler ve onların Latin eşdeğerleri ile değiştirilir Eğer öyleyse o zaman), geçici olarak o devre dışı bırakmanız gerekir.