Balasubramanian T Ответов: 1

Проверьте, действительно ли электронная почта существует в определенном домене


Я работаю в модуле для проверки того, что электронная почта действительно существует в определенном домене.
Для этого я выполняю EHLO,MAIL From: и RCPT TO. Мой код проверяет gmail, но он не работает в личных почтовых идентификаторах.

Некоторые SMTP-серверы отправляют ответ на команду EHLO как "запрошенное действие прервано [7.2] 14306, пожалуйста, посетите www.messagelabs.com/support для получения более подробной информации об этом сообщении об ошибке."

Некоторые SMTP-серверы отвечают на команду EHLO как "почта отклонена, потому что ваш IP-адрес находится в PBL. Видишь ли http://www.spamhaus.org/pbl"

Ниже приведена моя попытка. Мой вопрос таков
1. проверка электронной почты(Электронная почта существует на домене) является законной?
2. Если я проверю массовые электронные письма, будет ли мой IP-адрес занесен в черный список???

Пожалуйста, помогите мне проверить все электронные письма.

Что я уже пробовал:

я следил за этим ссылка Ниже приведена моя сдача.

tcpSocket.Connect(hostEntry.HostName, 25);

                if (!CheckResponse(tcpSocket, 220))
                {
                    tcpSocket.Close();
                    return false;
                }

                //HELO server
                SendData(tcpSocket, string.Format("EHLO {0}\r\n", Dns.GetHostName()));
                if (!CheckResponse(tcpSocket, 250))
                {
                    tcpSocket.Close();
                    return false;
                }


                //Identify yourself
                //Servers may resolve your domain and check whether 
                //you are listed in BlackLists etc.
                MailFrom = "<" + strEmailAddress + ">";
                SendData(tcpSocket, string.Format("MAIL FROM: {0}\r\n", MailFrom));
                if (!CheckResponse(tcpSocket, 250))
                {
                    tcpSocket.Close();
                    return false;
                }

                SendData(tcpSocket, string.Format("RCPT TO: {0}\r\n", MailFrom));
                if (!CheckResponse(tcpSocket, 250))
                {
                    tcpSocket.Close();
                    return false;
                }

1 Ответов

Рейтинг:
1

OriginalGriff

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

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

Извините - нет никакого способа сделать то, что вы хотите.


Balasubramanian T

большое спасибо. у меня есть вопрос. некоторые сайты верифицируются успешно. таких немного. "http://verify-email.org/" , "http://www.verifyemailaddress.org" все они выполняют одни и те же команды. если они это делают, то почему мы не можем?

F-ES Sitecore

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