Авторизация на SMTP сервере

Тема в разделе "WASM.NETWORKS", создана пользователем zoombi, 12 июл 2005.

  1. zoombi

    zoombi New Member

    Публикаций:
    0
    Регистрация:
    14 май 2005
    Сообщения:
    5
    Адрес:
    Russia
    Как авторизаваться на почтовом сервере?
     
  2. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    поиск по форуму, была такая тема
     
  3. zoombi

    zoombi New Member

    Публикаций:
    0
    Регистрация:
    14 май 2005
    Сообщения:
    5
    Адрес:
    Russia
    Искал, но не нашёл, помоги.
     
  4. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    действительно, онлайн поиском я тоже не нашёл.

    вот та тема.
     
  5. zoombi

    zoombi New Member

    Публикаций:
    0
    Регистрация:
    14 май 2005
    Сообщения:
    5
    Адрес:
    Russia
    IceStudent сенкс, то что нужно!
     
  6. Slim_Shady

    Slim_Shady New Member

    Публикаций:
    0
    Регистрация:
    21 мар 2006
    Сообщения:
    38
    Адрес:
    Ukraine
    Этой темы уже нет!!!!!!!!!!!!!!!
     
  7. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Оффлайн версия форума есть.
     
  8. Slim_Shady

    Slim_Shady New Member

    Публикаций:
    0
    Регистрация:
    21 мар 2006
    Сообщения:
    38
    Адрес:
    Ukraine
    Где есть?
     
  9. Slim_Shady

    Slim_Shady New Member

    Публикаций:
    0
    Регистрация:
    21 мар 2006
    Сообщения:
    38
    Адрес:
    Ukraine
    Искал, но не нашёл, помоги.
     
  10. xchg

    xchg New Member

    Публикаций:
    0
    Регистрация:
    10 апр 2006
    Сообщения:
    34
    Адрес:
    Russia
    вопрос по статье "отправка по smtp с авторизацией"(http://www.wasm.ru/article.php?article=simplesmtp)
    Скачал я исходник и переделал его под masm. возникают проблемы с авторизацией
    ---------------------------
    SMTP
    ---------------------------
    535 Incorrect authentication data

    8.204.14]

    250-SIZE 10485760

    250-8BITMIME

    250-AUTH PLAIN LOGIN

    250 PIPELINING


    ---------------------------
    ОК
    ---------------------------
    Но когда в проге меняешь Buffer и Buffer2,на login и pass которые закодированы этой же прогой просто прписаны они в секции дата то все проходит на ура
    мессаджбокс показывает содержимое буферов идентичное login и pass
    может что то я неправильно переделал

    []
     
  11. gershkovich

    gershkovich New Member

    Публикаций:
    0
    Регистрация:
    14 фев 2006
    Сообщения:
    97
    Сорри, может немного не в тему...

    Я тоже писал прогу на основе этой статьи.
    Как оказалось порт на майл ру 2525 а не 25
     
  12. xchg

    xchg New Member

    Публикаций:
    0
    Регистрация:
    10 апр 2006
    Сообщения:
    34
    Адрес:
    Russia
    куда листинг делся)

    прога отправляет письма и через 25 порт если пароль и логин записать срокой в самой проге
     
  13. Satell

    Satell New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    23
    подарите исходник на масм плииииииз
    vurdolak666@mail.ru
     
  14. Stub

    Stub New Member

    Публикаций:
    0
    Регистрация:
    11 май 2004
    Сообщения:
    311
    Адрес:
    Siberia
    Satell
    Смотри хорошенько что именно ты кодируешь в полях Login/pass: логин должен целиком включать твое мыло, т.е. например my_mail@mail.ru. Возможно также, что ты неправильно закодировал. Сорс, выдержку из которого ты мне приводил, отлично работает на mail.ru.
    Также смотри под дебугером что тебе выдает сервер.
     
  15. shinoda

    shinoda New Member

    Публикаций:
    0
    Регистрация:
    18 мар 2007
    Сообщения:
    36
    Код (Text):
    1. {
    2. smtp - ip адрес smtp сервера
    3. port - порт smtp сервера, по умолчанию 25
    4. from - адрес отправителя
    5. dest - адрес получателя
    6. subject - тема письма
    7. body - текст писма
    8. Возвращает True если письмо было успешно отправленно...
    9. }
    10.  
    11. function mail(smtp: string; port: integer; from, dest, subject,
    12.   body: string): bool;
    13. const
    14.   cl = #13#10;
    15. var
    16. WSAData: TWSAData;
    17.   Host: TSockAddrIn;
    18.   Sock: TSocket;
    19.   res: Integer;
    20.   buff: array[1..255] of Char;
    21.  
    22.   { отправляем данные через сокет }
    23.   procedure senddata(str: string);
    24.   var
    25.     i: integer;
    26.   begin
    27.     for i := 1 to Length(str) do
    28.       if send(Sock, str[i], 1, 0) = SOCKET_ERROR then
    29.         exit;
    30.   end;
    31.  
    32.   { получаем ответ от команды }
    33.   function recvdata(accept: string): bool;
    34.   var
    35.     buff: array[1..255] of Char;
    36.   begin
    37.     res := recv(Sock, buff, SizeOf(buff), 0);
    38.     Result := (Res = SOCKET_ERROR) or (Copy(buff, 1, 3) = accept);
    39.   end;
    40.  
    41. begin
    42.   try
    43.     result := false;
    44.     { инициализация сокета }
    45.     WSAStartUp(257, WSAData);
    46.     Sock := socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
    47.     if Sock = INVALID_SOCKET then
    48.       Exit;
    49.  
    50.     { устанавливаем хост и порт сервера }
    51.     res := inet_addr(PChar(smtp));
    52.     if res <= 0 then
    53.       exit;
    54.  
    55.     Host.sin_family := AF_INET;
    56.     Host.sin_port := htons(port);
    57.     Host.sin_addr.S_addr := res;
    58.  
    59.     { подключаемся к серверу }
    60.     if connect(Sock, Host, SizeOf(Host)) > 0 then
    61.       Exit;
    62.  
    63.     { приветствие сервера }
    64.     if not recvdata('220') then
    65.       Exit;
    66.  
    67.     { EHLO }
    68.     senddata('EHLO' + cl);
    69.     if not recvdata('250') then
    70.       Exit;
    71.  
    72.     { MAIL FROM: }
    73.     senddata('MAIL FROM:' + from + cl);
    74.     if not recvdata('250') then
    75.       Exit;
    76.  
    77.     { RCPT TO: }
    78.     senddata('RCPT TO:' + dest + cl);
    79.     if not recvdata('250') then
    80.       Exit;
    81.  
    82.     { DATA }
    83.     senddata('DATA' + cl);
    84.     if not recvdata('354') then
    85.       Exit;
    86.  
    87.     { отправляем текст сообщения }
    88.     senddata('Subject:' + subject + cl + cl + body + cl + '.');
    89.     if not recvdata('250') then
    90.       Exit;
    91.  
    92.     { отключаемся от сервера }
    93.     senddata('QUIT' + cl);
    94.  
    95.     result := true;
    96.   finally
    97.     { убиваем сокет }
    98.     closesocket(sock);
    99.     WSACleanup;
    100.   end;
    101. end;
    Этот код у меня полгода назад работал на ура с яндексом и маил.ру. Как видишь здесь нет авторизации, но когда отправляеш письмо, адрес отправителя должен быть на таком же сервере что и получателя.
    Например я делал так:
    mail('smtp.yandex.ru',25,'vasya@yandex.ru' ,'dest@yandex.ru', 'subj', 'body text');

    Если это уже не работает :) то тебе нужно вручную резолвить MX записи сервера. В каком-то выпуске журнала хакер есть статья ms-rem'a - " Разводим червей" . Та все это есть
     
  16. shinoda

    shinoda New Member

    Публикаций:
    0
    Регистрация:
    18 мар 2007
    Сообщения:
    36
    Только EHLO на HELO поменяй
     
  17. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    EHLO рулит. rtfm