
Универсальный чекер e-mail почты на валидность. Часть 1.
Нередко пользователи сталкиваются с такой задачей, как проверка e-mail адресов на валидность. А знаете ли Вы, что в ZennoPoster есть встроенный метод проверки почты? И называется он ValidateEmail(String,String,String) Method, в связи с чем отпадает необходимость в создании шаблонов по авторизации в каждом из почтовых сервисов.
Всё максимально просто!
Раз. Копируем нижеприведенный код в C# кубик:
ZennoPoster.ValidateEmail(project.Variables["login"].Value, project.Variables["pass"].Value);
Два: В переменных login и pass указываем данные от почтового ящика.
Три: Выполняем и проверяем результат! Если почта валидная — уйдет по зелёной ветке, если нет — красная.
Чекер готов! Спорю, что Вы не ожидали, что всё настолько легко 🙂
Давайте немного усложним задачу: что если нам нужно проводить соединение через прокси и обработать сам ответ от почтового сервера, чтобы определить конкретную ошибку в случае её возникновения.
Немного дорабатываем код и у нас получается следующая конструкция:
string proxy = project.Variables["proxy"].Value; if (String.IsNullOrWhiteSpace(proxy)) proxy = null; try { ZennoPoster.ValidateEmail(project.Variables["login"].Value, project.Variables["pass"].Value, proxyString:proxy); return "Good"; } catch (Exception e) { return e.Message; }
Если ящик необходимо проверить через прокси, установите его в переменную proxy в формате protocol://ip:port или protocol://login:[email protected]:port. В противном случае оставьте её пустой. Независимо от результата, стрелка пойдет по зеленой ветке. Следующим шагом Вам необходимо обработать сам ответ.
Какие могут вернуться значения?
Good — почтовый адрес валидный
Login failed! — адрес невалидный. Важный момент: если аккаунт заморожен за подозрительную активность, такой e-mail будет определяться как невалидный.
Connection failed! — не удалось установить соединение.
ValidateEmail: Need manual server settings — не удалось автоматически подобрать настройки для почтового сервера.В таком случае необходимо указать доп. аргументы для метода ValidateEmail(), а именно: сервер, порт, SSL (да \ нет), IMAP (да \ нет).
Как правильно обработать ответ?
Следующим шагом после С# кубика Вам нужна логика IF-ELSE, либо Switch, чтобы определить дальнейшие действия в зависимости от результата.
Во второй части статьи мы рассмотрим способ проверки E-mail адреса на существование.