нелатинская проверка адреса электронной почты

Теперь, когда ICann позволяет non-latin-character доменные имена, я должен быть обеспокоен почтовой проверкой? В настоящее время мои сайты используют функции php для обеспечения некоторого набора буквенно-цифровых символов в каждом сегменте адреса электронной почты. Будут эти другие наборы символов, такие как кириллица, арабский, и китайский, проверка передачи? Там рекомендуются функции php для использования для этого?

11
задан Eric Di Bari 24 May 2010 в 18:21
поделиться

2 ответа

Я думаю, что в конечном итоге лучший способ будет использовать правильную функцию IDN для преобразования входящей строки в строку ACE ( xn--xyz-blah.com ). Если этот процесс работает, доменное имя действительно. Если нет, значит, это не так.

Есть функция PHP с именем idn_to_ascii () , которая делает это, но для нее требуются дополнительные библиотеки. Вам нужно будет посмотреть, доступен ли он в вашей системе.

Также существует внешняя команда Linux с именем idn , которая выполняет преобразование IDN. Хотя я больше ничего об этом не знаю.

Если вы хотите использовать только встроенные методы PHP, delfuego предоставляет регулярное выражение в этом вопросе , которое выглядит очень хорошо.

1
ответ дан 3 December 2019 в 12:28
поделиться

Я собирался порекомендовать использовать filter_var () с фильтром FILTER_VALIDATE_EMAIL . Но после поиска в Google выясняется, что еще не поддерживает многобайтовые символы . Похоже, на данный момент лучше всего вырезать нелатинские символы и выполнить обычную проверку для них (хотя checkdnsrr , очевидно, не сработает, поскольку вы изменили домен удалив нелатинские символы и заменив их их латинскими эквивалентами, поэтому, если вы используете это для проверки записей MX домена электронной почты, вам нужно будет временно отключить это).

0
ответ дан 3 December 2019 в 12:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: