Для отправки почты через smtp-сервер провайдера, естественно нужно знать адрес. Проблема как его узнать? Получить текущий ip-адрес и слать whois? Как учитывать то, что текущий компьютер может быть в локальной сети?
В общем случае никак. Но можно попытаться прочитать настройки почтовых клиентов (если они конечно есть).
А что если их нет? Может как-то эвристически определять имя домена? и слать серию http-get-запросов на страничку провайдера? Там ведь обычно пишут какие услуги предоставляют и какие настройки нужны. Ну и парсить строки соответственно. Как думаете имеет право на жизнь такой метод?
Это удтверждение в обосновании не нуждается, так как совершенно очевидно, что эта идея бред. Если можете доказать обратное - то пожалуйста
Ну у меня идея такая: 1.) Сделать WHOIS запрос с одним из IP прова. Отсюда получим имя DNS например http://www.nic.ru/whois/?domain=mtu.ru nserver: dns0.mtu.ru. 195.34.32.83 nserver: dns1.mtu.ru. 212.188.8.37 2.) отрезаем до вророго уровня и делаем DNS запрос по MX(Mail Exchange) записям C:\nslookup -type=MX mtu.ru Server: ??????????? Address: ???.???.???.??? Non-authoritative answer: mtu.ru MX preference = 10, mail exchanger = mx0.mtu.ru mtu.ru nameserver = dns0.mtu.ru mtu.ru nameserver = dns1.mtu.ru mx0.mtu.ru internet address = 195.34.32.254 dns0.mtu.ru internet address = 195.34.32.83 dns1.mtu.ru internet address = 212.188.8.37 Отсюда вытаскиваем mx0.mtu.ru internet address = 195.34.32.254 3) тестим telnet mx0.mtu.ru 25 220 tzec.mtu.ru ESMTP Postfix quit 221 2.0.0 Bye Connection to host lost. усе ок
Не путай MX сервер с smtp relay. Это не всегда одно и тоже. smtp relay предназначается для отправки исходящей почты (и он кстати в большинстве случаев требует авторизации), а MX используется для ее приема.
Т.е. неужели он обращаетс к примеру на маил.ру и проверяет на существование такое мыло и заодно проверяет логин-мыло? Т.е. хотелось бы знать, как именно smtp relay проводят авторизацию. Неужели нельзя уже нельзя послать почту?
А кто мешает слать прямо на MX целевого домена? Правда в этом случае велика вероятность что письмо не дойдет, так как антиспам не дремлет
>nslookup -type=MX mail.ru Non-authoritative answer: mail.ru MX preference = 10, mail exchanger = mxs.mail.ru mail.ru nameserver = ns3.mail.ru mail.ru nameserver = ns4.mail.ru mail.ru nameserver = ns5.mail.ru mail.ru nameserver = ns.mail.ru mail.ru nameserver = ns1.mail.ru mail.ru nameserver = ns2.mail.ru mxs.mail.ru internet address = 194.67.23.20 ns.mail.ru internet address = 194.67.23.130 ns1.mail.ru internet address = 194.67.57.103 ns2.mail.ru internet address = 194.67.57.104 ns3.mail.ru internet address = 194.67.23.17 ns4.mail.ru internet address = 194.67.57.4 ns5.mail.ru internet address = 194.67.23.232 Типа сюдыть? mxs.mail.ru Я конечно не силен в данной области, интересуюсь чисто из этнографического интереса но действительно антиспам не пропустит, причем наверняка. Причем спросит аторизацию наверняка.
MX не может требовать авторизации. Все зависит от того, какие критерии фильтрации используются на почтовом сервере, находиться ли IP отправителя в блеклистах и насколько достоверно ты формируешь письмо и smtp чат. При идеально правильном формировании письма, в среднем мы получим 1 дошедшее письмо на 10 отправленых, что весьма неплохо.
Hgni а можно все делать через tracert например, tracert ya.ru получаешь все хосты по которым шли твои пакеты до yandex.ru а дальше их сканируешь на наличие pop/smtp по дампу
YoungBastard не знаю, может и можно но не надержно как-то. Вот трейсил и ни разу не получил полный путь, некоторые цепочки потеряны оказались. Хотя твое предложение тоже проверим.
вот про MX и relay, популярно и с картинками http://info.nic.ru/st/8/out_265.shtml или вот http://ru.wikipedia.org/wiki/SMTP Чтобы доставить сообщение до адресата, необходимо переслать его почтовому серверу домена, в котором находится адресат. Для этого используется запись типа MX (англ. Mail eXchange — обмен почтой) системы DNS.