Вообще, мог бы и сам написать. Алгоритм простой.
Условия того, что строка является почтовым адресом:
1. Содержит знак @, при этом не на первой позиции.
2. Содержит как минимум 1 точку после знака @ и не на следующей позиции.
Соответственно сам алогритм:
1. Находим знак @.
2. От найденной позиции влево до пробела или начала строки - имя пользователя.
3. От найденной позиции в право до пробела или конца строки - имя сервера. Если в имени сервера не обнаружена точка на позиции > (именно строго больше) позиции знака @ + 1, то это не адрес *ну или явно неправильный адрес.
4. Дополнительно. Можно проверить, что зона адреса (.com, .net, . ru и.т.д) соответсвует существующей зоне.
После выдирания строки, которая соответсвует вышеперичисленным условиям, можно проверить наличие соответсвующего почтового сервера, для чего по адресу сервера (после @) надо получить MX-запсиь. Тут поможет Инди.
|