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

Discussion in 'WASM.NETWORKS' started by zoombi, Jul 12, 2005.

  1. zoombi

    zoombi New Member

    Blog Posts:
    0
    Joined:
    May 14, 2005
    Messages:
    5
    Location:
    Russia
    Как авторизаваться на почтовом сервере?
     
  2. IceStudent

    IceStudent Active Member

    Blog Posts:
    0
    Joined:
    Oct 2, 2003
    Messages:
    4,300
    Location:
    Ukraine
    поиск по форуму, была такая тема
     
  3. zoombi

    zoombi New Member

    Blog Posts:
    0
    Joined:
    May 14, 2005
    Messages:
    5
    Location:
    Russia
    Искал, но не нашёл, помоги.
     
  4. IceStudent

    IceStudent Active Member

    Blog Posts:
    0
    Joined:
    Oct 2, 2003
    Messages:
    4,300
    Location:
    Ukraine
    действительно, онлайн поиском я тоже не нашёл.

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

    zoombi New Member

    Blog Posts:
    0
    Joined:
    May 14, 2005
    Messages:
    5
    Location:
    Russia
    IceStudent сенкс, то что нужно!
     
  6. Slim_Shady

    Slim_Shady New Member

    Blog Posts:
    0
    Joined:
    Mar 21, 2006
    Messages:
    38
    Location:
    Ukraine
    Этой темы уже нет!!!!!!!!!!!!!!!
     
  7. IceStudent

    IceStudent Active Member

    Blog Posts:
    0
    Joined:
    Oct 2, 2003
    Messages:
    4,300
    Location:
    Ukraine
    Оффлайн версия форума есть.
     
  8. Slim_Shady

    Slim_Shady New Member

    Blog Posts:
    0
    Joined:
    Mar 21, 2006
    Messages:
    38
    Location:
    Ukraine
    Где есть?
     
  9. Slim_Shady

    Slim_Shady New Member

    Blog Posts:
    0
    Joined:
    Mar 21, 2006
    Messages:
    38
    Location:
    Ukraine
    Искал, но не нашёл, помоги.
     
  10. xchg

    xchg New Member

    Blog Posts:
    0
    Joined:
    Apr 10, 2006
    Messages:
    34
    Location:
    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

    Blog Posts:
    0
    Joined:
    Feb 14, 2006
    Messages:
    97
    Сорри, может немного не в тему...

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

    xchg New Member

    Blog Posts:
    0
    Joined:
    Apr 10, 2006
    Messages:
    34
    Location:
    Russia
    куда листинг делся)

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

    Satell New Member

    Blog Posts:
    0
    Joined:
    May 19, 2007
    Messages:
    23
    подарите исходник на масм плииииииз
    vurdolak666@mail.ru
     
  14. Stub

    Stub New Member

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

    shinoda New Member

    Blog Posts:
    0
    Joined:
    Mar 18, 2007
    Messages:
    36
    Code (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

    Blog Posts:
    0
    Joined:
    Mar 18, 2007
    Messages:
    36
    Только EHLO на HELO поменяй
     
  17. Freeman

    Freeman New Member

    Blog Posts:
    0
    Joined:
    Feb 10, 2005
    Messages:
    1,385
    Location:
    Ukraine
    EHLO рулит. rtfm