Полная проверка адресов выполняется путем соединения с почтовым сервером,
адрес которого указан в MX записи, которую возвращает DNS сервер путем запросов у этого домена, или напрямую у DNS сервера, в том случае если не была найдена MX запись.
После соединения с сервером программа пробует посылать почту проверяемому адресу.
Если сервер отвечает на запрос соединения с этим ящиком, электронный адрес помечается как — «Ящик существует» ,
в обратном случае — как — «Ящик не существует».
Пример лога работы алгоритма в одном из существующих продуктов я привел в файле check log.txt
Для примера код, реализованный мною на базе DLL от Chilkatsoft )
. Код реализован в приложенном файле algorithm-with-chilkat.cs
/// <summary>
/// Проверка email на существование
/// </summary>
/// <param name="email">email для проверки</param>
/// <returns></returns>
public bool emailExists(string email)
Теперь поясню почему не работает. В данном случае второй вызов receivedMsg = socket.ReceiveString(); возвращает NULL. Почему то проблематично делать подряд 2 цикла SendString-ReceiveString (даже если 2 раза HELO послать).
=================
Собственно задача. Реализовать на C# функцию следующего прототипа c учетом вышеописанного алгоритма. Проверять работу будем аналогично на 2 emailах (существующем support@chilkatsoft.com и несуществующем admin@kolchaka.net). Желательно реализовать на базе библиотеки socket от chilkat
/// <summary>
/// Проверка email на сущестование
/// </summary>
/// <param name="email">email для проверки</param>
/// <returns></returns>
public bool emailExists(string email)
{
try
{
return true;
}
catch (Exception exp)
{
lastError = exp.Message;
return false;
}
}
Оплата 15$, после проверки (можно по скайп с расшариванием экрана).