На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь
Модераторы: Qraizer
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> Помогите с smtp !!!
    Кто знает-помогите!
    Я пишу прогу на С++,которая должна работать под Win98 и задача которой - рассылать e-mail сообщения клиентам из БД по заданному алгоритму.
    У меня 2 проблемы:
    1)как определить SMTP сервер,имея только адрес (имеем - например alpeugene@yandex.ru,надо чтоб прога выдавала что-то типа smtp.yandex.ru)
    2)проблемы с yahoo - почтой(smtp.mail.yahoo.com)
    Не хочет он брать почту как все.Я уже и коннектился с pop.mail.yahoo.com,и перед MAIL FROM:<----> посылал AUTH LOGIN c шифрованными логином и паролем,ничо не помогает,а задание срывается....
    Помогите!!!
    Заранее благодарен. eugene(alpeugene@hotmail.com)
      а ты уверен, что smtp.mail.yahoo.com вообще разрешает отправлять через себя мыло ?
        По поводу первой проблемы - в DNS есть такой тип записи - MX (Mail eXchange). Сделав соответсвующий запрос к DNS серверу ты получишь IP адрес хоста, обслуживающего почтовый домен.
        На счет второго - посмотри, правильно ли ты реализуешь протокол. Полностью он описан в rfc821.
          1)Насчет DNS и MX записей я в курсе,но можно ли это реализовать на Win98 и если можно,то как ?
          2)То,что сервер smtp.mail.yahoo.com позволяет как-то посылать через себя мыло я уверен,так как совсем недавно скачал программу MailSender(freeware,но исходников не дали),написанную на Делфи,которая на данный сервер мыло шлет и успешно.Видимо можно как-то это организовать и на С++,но как,может кто знает,помогите!!!
            1) Судя по информации в MSDN gethostbyname резолвит MX записи. На я сам лично не проверял.
            2) Можешь приветси польностью дамп сессии? Легче будет разобраться.
              2alpeugene:
              а ты уверен, что твой MailSender использует в качестве сервера исходящей почты именно smtp.mail.yahoo.com ?
              Представляю, какая была бы возможность для спамеров, если Yahoo позволял так свободно через себя рассылать почту ...
                1)вопрос остается открытым....
                2)вопрос снимается,способ я нашел,правда не без помощи www.codeguru.com(кстати сервер действительно smtp.mail.yahoo.com ,если не верите ,можете проверить telnet-ом) .Кому интересно-пишите (alpeugene@hotmail.com).Непременно отвечу
                  ....Так что,неужели никто не знает,как реализовать DNS Rsolver MX записей на С++ ,работающий под Win98.На делфи я нашел аж 3(!!!)таких работающих проги (правда без исходников)...
                  Кто знает помогите !!!!
                    host -t MX yahoo.com
                    or
                    nslookup
                    set type=MX
                    yahoo.com
                    .
                    dns запрос стандартен.
                    проще и надежнее юзать sendmail (чтото типа open(F, "|sendmail")).
                    ну или если так охота все mx домена
                    перебирать и т.д. - дерзай.
                      Большое спасибо за ответ !!!
                      Насчет nslookup - так это не для Win98
                      Насчет sendmail и т д - это что-то новое для меня .А можно поподробнее,что за он,как его едят,где найти и может примерчик какой и можно ли его применять в Win98!!!
                      Заранее благодарен !!!
                        $ host -t MX yahoo.com
                        yahoo.com mail is handled (pri=1) by mx1.mail.yahoo.com
                        yahoo.com mail is handled (pri=1) by mx2.mail.yahoo.com
                        yahoo.com mail is handled (pri=5) by mx4.mail.yahoo.com
                        или
                        $ nslookup
                        > set type=MX
                        > yahoo.com
                        yahoo.com preference = 5, mail exchanger = mx4.mail.yahoo.com
                        yahoo.com preference = 1, mail exchanger = mx1.mail.yahoo.com
                        yahoo.com preference = 1, mail exchanger = mx2.mail.yahoo.com

                        это ты вычислил мыл ексченжеры.
                        потом пытаешся в зависимости от приоритета
                        слать на эти ексченжеры мыл юзеру (user@yahoo.com).
                        не получается на первый - тогда пробуеш на след. и т.д.
                        еслиб юзал уже готовое (sendmail например (http://www.sendmail.org/))
                        то это все вываливается только в запуск его как процесса.
                        то что ты отдевелопиш свое для вычисления и копания эимксов и
                        потом на низах сам в смтп долбиться будеш - времени нисколько не выиграеш.
                        мыл система не очень быстра чтоб на этом выиграть время.
                        а если уже по проторенной дорожке, то например в пелах
                        это будет выглядеть как (пример куска спам-рассылки):

                        $mail_program = "/usr/sbin/sendmail -t";
                        $c_from_user = "crazy\@microsoft.com";
                        $c_subject = "ugu";
                        # while(...)
                        # {
                        open (MAIL, "|$mail_program")
                          твою мать.
                          повтор:

                          $mail_program = "/usr/sbin/sendmail -t";
                          $c_from_user = "crazy\@microsoft.com";
                          $c_subject = "ugu";
                          # while(...)
                          # {
                          open (MAIL, "|$mail_program") \|\| die "oops."; #\|\| замениш на "или" сишное ...
                          print MAIL <<__END_OF_MAIL__;
                          To: $c_user_mail
                          From: $c_from_user
                          Subject: $c_subject
                          kuku ?
                          __END_OF_MAIL__
                          close (MAIL);
                          # }
                            а про в98 ...
                            я вообщето все тут про унихи говорил.
                            если уж совсем приспичило под вин, то
                            тогда есть неплохой мылсерв с клаент парт
                            xmail (http://www.xmailserver.org/).
                            он и на вин встает. вот помоему только на НТ.
                            можеж серв сам не стартовать, а юзать только
                            рассыльник.
                            перлу под вин найдеш на http://www.activestate.com/
                            .
                            ну или из сей вызывай.
                            разницы нет особой. только в количестве строк.

                            зы.
                            лучшеб *них какойнибудь ставил для таких задач.
                            с мс мороки много и при конфиге и в будущем.
                              про яху...
                              насколько я знаю, перед тем, как отправить через нее смтп, нужно авторизоваться по pop. я в проге так не делал, а в бате есть такая опция, авторизоваться поп перед смпт, и только так можно почту отправлять, если конечно сначала отправлять, а не получать. иначе, просто вначале получаешь почту, а потом отправля через сптм что душе угодно..
                                Спасибо за ответы!!! Я уж думал,что проблема с DNS Resolver-ом в Win98 не решаема ....
                                Однако,по совету Lamo(персональное дзякуй)скачал исходники Xmailer - a для Win2K ,кое-что подправил и заработало,правда с глюками(контрол на Делфи работает лучше)-
                                на некоторых доменах полностью зависает,кое -что не находит,но в общем и целом думаю,добью...
                                Хотя подсказали мне тут еще один способ:
                                В Win2K есть целое DNS API,включая почти универсальную функцию DNSQuery.
                                Microsoft распространяет Update,позволяющее
                                использовать данное API в том числе и для Win98,правда скачать надо все обновление(всего 300 MB)А мне надо только 6 файлов:
                                iphlpapi.h,windns.h,iphlpapi.dll,windns.dll и
                                2 lib : Dnsapi.lib и Iphlpapi.lib
                                Может кто сбросит по мылу на alpeugene@hotmail.com ?!!!
                                Дело в том что программу ,реализующую данное API я уже скачал и мне не хватает только 6 этих файлов.
                                Еще раз Всем спасибо и с праздниками !!!
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0528 ]   [ 16 queries used ]   [ Generated: 28.04.24, 03:47 GMT ]