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

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

  1. zoombi

    zoombi New Member

    Публикаций:
    0
    Как авторизаваться на почтовом сервере?
     
  2. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    поиск по форуму, была такая тема
     
  3. zoombi

    zoombi New Member

    Публикаций:
    0
    Искал, но не нашёл, помоги.
     
  4. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    действительно, онлайн поиском я тоже не нашёл.

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

    zoombi New Member

    Публикаций:
    0
    IceStudent сенкс, то что нужно!
     
  6. Slim_Shady

    Slim_Shady New Member

    Публикаций:
    0
    Этой темы уже нет!!!!!!!!!!!!!!!
     
  7. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Оффлайн версия форума есть.
     
  8. Slim_Shady

    Slim_Shady New Member

    Публикаций:
    0
    Где есть?
     
  9. Slim_Shady

    Slim_Shady New Member

    Публикаций:
    0
    Искал, но не нашёл, помоги.
     
  10. xchg

    xchg New Member

    Публикаций:
    0
    вопрос по статье "отправка по 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
    Сорри, может немного не в тему...

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

    xchg New Member

    Публикаций:
    0
    куда листинг делся)

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

    Satell New Member

    Публикаций:
    0
    подарите исходник на масм плииииииз
    vurdolak666@mail.ru
     
  14. Stub

    Stub New Member

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

    shinoda New Member

    Публикаций:
    0
    Код (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
    Только EHLO на HELO поменяй
     
  17. Freeman

    Freeman New Member

    Публикаций:
    0
    EHLO рулит. rtfm