SMTP send фигня выходит

Тема в разделе "WASM.NETWORKS", создана пользователем Grevg23, 18 сен 2004.

  1. Grevg23

    Grevg23 New Member

    Публикаций:
    0
    Регистрация:
    13 сен 2004
    Сообщения:
    17
    Адрес:
    Russia
    Дошел до точки?!!! Написал свой сендмейл для обучения, и ничего не могу понять.

    У меня VmWare под ней винда на ней мейл сервер (Office Mail Server такая штука

    мелкая) ну и хостс настроен соответственно. Так вот под отладчиком письмо уходит,

    а при нормальном запуске фиг. Вот исходник подскажите что за фигня?



    .586

    .model flat,stdcall

    option casemap:none



    include \masm32\include\windows.inc



    irp lb,<kernel32,wsock32,user32>

    include \masm32\include\&lb&.inc

    includelib \masm32\lib\&lb&.lib

    endm

    smtp_port equ 25

    buffsz equ 256



    .data



    Helo db "HELO grevgeny.ru",13,10

    mail db "MAIL FROM: der@dragon.ru",13,10

    rcpt db "RCPT TO:req@dragon.ru",13,10

    data db "DATA",13,10

    body db "FROM: der@dragon.ru",13,10

    db "TO:req@dragon.ru",13,10

    db "SUBJECT: Проба пера",13,10

    db "Почта блин.",13,10

    bodylen dd offset bodylen - offset body

    point db ".",13,10

    quit db "QUIT",13,10

    server db "dracon.ru",0

    wsaData WSADATA <0>

    saServer sockaddr_in <0>

    sockaddrsz dd sizeof sockaddr_in

    buff db buffsz dup (0)

    CompName db 25 dup (0)

    skt dd 0



    .data?

    Helo_str db 50 dup(?)



    .code

    start:



    invoke WSAStartup,010001,offset wsaData

    invoke gethostbyname,offset server

    or eax,eax

    jz _Exit

    assume eax:ptr hostent

    mov ebx,[eax].h_list

    mov ebx,[ebx]

    mov ebx,[ebx]

    mov saServer.sin_addr,ebx

    assume eax:nothing

    mov saServer.sin_family,AF_INET

    invoke htons,smtp_port

    mov saServer.sin_port,ax

    invoke socket, AF_INET,\ ; Address family

    SOCK_STREAM,\ ; Socket type

    0 ; Protocol

    cmp eax,INVALID_SOCKET

    je _Exit

    mov skt,eax

    invoke connect,skt,\ ; Socket

    offset saServer,\ ; Server address

    sockaddrsz; ; Length of server address structure

    cmp eax,SOCKET_ERROR

    je closeskt

    invoke send, skt,\ ; Connected socket Запрос на соединение c smtp

    offset Helo,\ ; Data buffer

    sizeof Helo,\ ; Length of data

    0 ; Flags

    cmp eax,SOCKET_ERROR

    je closeskt

    invoke recv, skt,\ ; Connected socket проверяем разрешение 220

    offset buff,\ ; Receive buffer

    buffsz, \ ; Size of receive buffer

    0 ; Flags

    cmp eax,SOCKET_ERROR

    je closeskt

    mov eax, offset buff

    cmp eax,"022"

    je closeskt

    ; movsd offset buff, offset buff1

    invoke send, skt,\ ; Connected socket отправляем mail from

    offset mail,\ ; Data buffer

    sizeof mail,\ ; Length of data

    0 ; Flags

    cmp eax,SOCKET_ERROR

    je closeskt

    invoke recv, skt,\ ; Connected socket проверяем 250

    offset buff,\ ; Receive buffer

    buffsz, \ ; Size of receive buffer

    0 ; Flags

    cmp eax,SOCKET_ERROR

    je closeskt

    mov eax, offset buff

    cmp eax,"052"

    je closeskt

    ; xor offset buff,offset buff

    invoke send, skt,\ ; Connected socket отправляем rcpt to

    offset rcpt,\ ; Data buffer

    sizeof rcpt,\ ; Length of data

    0 ; Flags

    cmp eax,SOCKET_ERROR

    je closeskt

    invoke recv, skt, ; Connected socket проверяем 250

    offset buff, ; Receive buffer

    buffsz, ; Size of receive buffer

    0 ; Flags

    cmp eax,SOCKET_ERROR

    je closeskt

    mov eax, offset buff

    cmp eax,"052"

    je closeskt

    ; mov offset buff,0

    invoke send, skt,\ ; Connected socket даем сообщение data

    offset data,\ ; Data buffer

    sizeof data,\ ; Length of data

    0 ; Flags

    cmp eax,SOCKET_ERROR

    je closeskt

    invoke recv, skt,\ ; Connected socket проверяем 354

    offset buff,\ ; Receive buffer

    buffsz, \ ; Size of receive buffer

    0 ; Flags

    cmp eax,SOCKET_ERROR

    je closeskt

    mov eax, offset buff

    cmp eax,"453"

    je closeskt

    invoke send, skt,\ ; Connected socket тело письма

    offset body,\ ; Data buffer

    bodylen,\ ; Length of data

    0 ; Flags

    cmp eax,SOCKET_ERROR

    je closeskt

    invoke send, skt,\ ; Connected socket завершающая точка

    offset point,\ ; Data buffer

    sizeof point,\ ; Length of data

    0 ; Flags

    cmp eax,SOCKET_ERROR

    je closeskt

    invoke send, skt,\ ; Connected socket команда завершения

    offset quit,\ ; Data buffer

    sizeof quit,\ ; Length of data

    0 ; Flags

    cmp eax,SOCKET_ERROR

    je closeskt



    closeskt:

    invoke closesocket,skt

    _Exit:

    invoke WSACleanup

    invoke ExitProcess,0

    end start
     
  2. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Grevg23 Уважай время и нервы других , поправь исходник с тегом "код" , поставь табуляцию .



    з.ы. в отладкике много чего может работать
     
  3. Grevg23

    Grevg23 New Member

    Публикаций:
    0
    Регистрация:
    13 сен 2004
    Сообщения:
    17
    Адрес:
    Russia
    У меня опера глюкнул :-( пока писал вроде все в порядке было. Вот отправляю в архиве, подкиньте идею.

    [​IMG] _1134120536__sndmail.zip
     
  4. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine




    - отладчик запускаеться под VmWare ?

    - нормальный запуск это под VmWare ?
     
  5. Grevg23

    Grevg23 New Member

    Публикаций:
    0
    Регистрация:
    13 сен 2004
    Сообщения:
    17
    Адрес:
    Russia
    Нет под VmWare только мейл сервак, остальное под основной 2000. И отладчик, и нормальный запуск.