C# - алгоритм верификации email
Полная проверка адресов выполняется путем соединения с почтовым сервером,
адрес которого указан в MX записи, которую возвращает DNS сервер путем запросов у этого домена, или напрямую у DNS сервера, в том случае если не была найдена MX запись.
После соединения с сервером программа пробует посылать почту проверяемому адресу.
Если сервер отвечает на запрос соединения с этим ящиком, электронный адрес помечается как — «Ящик существует» ,
в обратном случае — как — «Ящик не существует».
Пример лога работы алгоритма в одном из существующих продуктов я привел в файле check log.txt
Для примера код, реализованный мною на базе DLL от Chilkatsoft http://www.chilkatsoft.com/download/ChilkatDotNet4-9.3.2-win32.msi . Код реализован в приложенном файле algorithm-with-chilkat.txt
///
/// Проверка email на существование
///
/// email для проверки
///
public bool emailExists(string email)
Теперь поясню почему не работает. В данном случае второй вызов receivedMsg = socket.ReceiveString(); возвращает NULL. Почему то проблематично делать подряд 2 цикла SendString-ReceiveString (даже если 2 раза HELO послать).
=================
Собственно задача. Реализовать на C# функцию следующего прототипа c учетом вышеописанного алгоритма. Проверять работу будем аналогично на 2 emailах (существующем [email protected] и несуществующем [email protected]). Желательно реализовать на базе библиотеки socket от chilkat
///
/// Проверка email на сущестование
///
/// email для проверки
///
public bool emailExists(string email)
{
try
{
return true;
}
catch (Exception exp)
{
lastError = exp.Message;
return false;
}
}
Оплата 15$, после проверки (можно по скайп с расшариванием экрана).