проверить существование электронной почты, используя Delphi с Indy или любыми другими компонентами / инструментами для Delphi - PullRequest
2 голосов
/ 27 марта 2011

Мне нужно проверить учетные записи электронной почты, существует или нет, мне нужно сделать это с помощью Delphi и Indy (если возможно)

У меня есть база данных windows для системы ERP, и мне нужно убедиться, что клиент ввел в систему действительный адрес электронной почты, чтобы я мог отправить своему клиенту запрашиваемые им цитаты.

Я пытался протестировать Yahoo и Google, используя команды отправки HELO, MAIL и RCPT, но безуспешно.

Ответы [ 3 ]

4 голосов
/ 28 марта 2011

Почтовые серверы должны защищать себя от спамеров и других со злым умыслом.Они не собираются легко раскрывать свои секреты.Обычно почтовые серверы настраиваются на сообщения черной дыры, отправленные несуществующим получателям.Они не отвечают отправителю, говоря: «Извините, этот пользователь не существует, пожалуйста, попробуйте еще раз».

Итак, если вы хотите проверить, есть ли у человека адрес электронной почты за человекомя думаю, что единственный способ убедиться в этом - отправить электронное письмо с просьбой дать ответ.

4 голосов
/ 28 марта 2011

Вы должны попросить своих клиентов подтвердить свой адрес электронной почты, то есть дважды ввести его, чтобы уменьшить количество орфографических ошибок, попросить зарегистрироваться и отправить ссылку для активации и так далее.Четко заявите, что им нужен действующий адрес электронной почты: если они спрашивают у вас цитату, зачем вводить неверный адрес?Но имейте в виду, что некоторые люди могут использовать одноразовые адреса электронной почты для защиты своих реальных адресов.

У вас нет возможности проверить, существует ли адрес в действительности, просто спросив его сервер.Из-за большого количества спама и методов, применяемых спамером для сбора и очистки своих списков адресов, большинство серверов настроены на самозащиту.

Именно поэтому я предложил "быть вежливым".Извините, если вы ошиблись, я просто говорил вам, что если ваше приложение ведет себя как спамер (а ваша предыдущая версия вопроса была гораздо более неясной относительно ваших целей), это может привести к вашим IP-адресамбыть в черном списке.Тогда у вас будет гораздо больше проблем с отправкой цитат клиентам.

0 голосов
/ 27 марта 2011

Вы можете попробовать ICS компоненты , библиотеку с открытым исходным кодом с хорошими примерами (см. SMTPClient). Таким образом, эта или другая библиотека не скажет вам, существует ли учетная запись электронной почты или нет, потому что это зависит от того, как хост отвечает на команды о несуществующей учетной записи. В ICS, когда команда отправлена, вам, возможно, придется управлять событием: SmtpRequestDone(Sender: TObject; RqType: TSmtpRequest;ErrorCode: Word);
Где ErrorCode - это код ошибки (например, 550).

...