Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
|
SMTP... 02.05.02 10:35 Число просмотров: 973
Автор: ih8u <i hate you> Статус: Member
|
У тя connect возвратил SOCKET_ERROR
|
<programming>
|
SMTP... 30.04.02 12:54
Автор: New Статус: Незарегистрированный пользователь
|
Вот такая проблема
Содрал я тут с одного сайта исходник отправки сообщения по е-мылу
А вот не работает,однако....
В дебаггере посмотрел - на функции connect выдается FFFFFFFF в eax
Описалово на русском к этому файлу прилагается
Не могу понять
.386
.model flat, stdcall
option casemap :none
include \masm32\include\windows.inc
include \masm32\include\wsock32.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
include \masm32\include\gdi32.inc
include \masm32\include\comdlg32.inc
include \masm32\include\advapi32.inc
includelib \masm32\lib\wsock32.lib
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\gdi32.lib
includelib \masm32\lib\comdlg32.lib
includelib \masm32\lib\advapi32.lib
.data
server db 'yandex.ru',0
helo_ db "HELO yandex.ru",10,13
mfrom_ db "MAIL FROM: xren@rambler.ru",10,13
rcpt_ db "RCPT TO: dvaxrena@yandex.ru",10,13
datas_ db "DATA",10,13
from_ db "FROM: Sender ",13,10
to_ db "TO: Victim ",13,10
sub_ db "SUBJECT: Bla",13,10
this_ db "This is an e-mail",13,10
point_ db ".",13,10
quit_ db "QUIT",13,10
.data?
hInstance dd ?
wsa WSADATA <?>
sockaddr_1 sockaddr_in <?>
fd dd ?
.code
start:
invoke WSAStartup,101h,offset wsa
invoke socket,AF_INET,SOCK_STREAM,0
mov fd,eax
mov sockaddr_1.sin_family,AF_INET
invoke htons,25
mov sockaddr_1.sin_port,ax
invoke gethostbyname,ADDR server
mov eax,[eax+12]
mov eax,[eax] ;вот эта строчка еще непонятна
mov sockaddr_1.sin_addr,eax
invoke connect,fd,ADDR sockaddr_1,sizeof sockaddr_1
;вот после этой функции выше в eax FFFFFFFF
;ошибка то есть
invoke closesocket,fd
invoke WSACleanup
invoke ExitProcess,eax
end start
|
|
SMTP... 02.05.02 10:35
Автор: ih8u <i hate you> Статус: Member
|
У тя connect возвратил SOCKET_ERROR
|
|
RFC почитай. 02.05.02 05:20
Автор: йцукенг <jcukeng> Статус: Member
|
ф-я connect вернула -1.
причину можно узнать вызвав WSAGetLastError.
PS. если то что ты привел - весь исходник, то и не должно ничего отправляться:).
PPS. не выпендривайся, напиши то что тебе надо на С, потом переделаешь на асм, если будет нужда:).
|
| |
RFC почитай. 06.05.02 07:34
Автор: New Статус: Незарегистрированный пользователь
|
> ф-я connect вернула -1. > причину можно узнать вызвав WSAGetLastError. > > PS. если то что ты привел - весь исходник, то и не должно > ничего отправляться:).
Нет исходник не весь - только тот участок,где ошибка выдается - connect
> PPS. не выпендривайся, напиши то что тебе надо на С, потом > переделаешь на асм, если будет нужда:).
Да я не выпендриваюсь - тока на с++ не очень хочется делать - слабо понимаю этот язык - я ж не программист
На с++ у меня тоже есть исходники - и таже самая история - ничего не отправляется - ошибка на функции connect
А на тех сайтах,где они были взяты утверждается,что все работает - так что не знаю....
WSAGetLastError - я посмотрю это дело конечно,но думаю,что что-то другое
У меня есть исходник на делфи - и он работает
А на с++ и асме не работают
|
| | |
RFC почитай. 07.05.02 05:04
Автор: Renkvil <Boris> Статус: Member
|
> Нет исходник не весь - только тот участок,где ошибка
Поделись с народом исходним.
Можно ссылкой.
> Да я не выпендриваюсь - тока на с++ не очень хочется делать > - слабо понимаю этот язык - я ж не программист
Интересная формулировка. :-)
> А на тех сайтах,где они были взяты утверждается,что все > работает - так что не знаю....
И где эти сайты?
|
| | | |
спасибо йцукенгу (исходник здесь же) 07.05.02 07:47
Автор: New Статус: Незарегистрированный пользователь
|
> server db 'smtp.yandex.ru",0 > - вот такой должен быть адрес вместо > server db 'yandex.ru',0 > неудивительно, что коннект не срабатывал:) > > ЗЫ. для pop3, кстати, адрес pop.yandex.ru > > источник информации http://mail.yandex.ru/text/help.html
ТОЧНО - все в этом и было
Пишут исходники,а про такие вещи не упоминают
Кстати еще прикол вчера наблюдал - не знаю чем и объяснить
В TD поставил бряк на connect (делфи вариант программы) - ф9 - появляемся где надо - ф8 - функция выполняется и в EAX тоже FFFFFFFF
Открываю аутглюк - а там письмо,которое должно было отправиться
Совсем непонятно стало
Вчера весь день ковырял свой асм-вариант - сделал,что в дебаггере никаких ошибок нету - ни на connect - ни на send - а письмо все равно не отправляется - то есть после send в eax содержится число переданных байт - ошибок вроде никаких - а письма нету
.386
.model flat, stdcall
option casemap :none
include \masm32\include\windows.inc
include \masm32\include\wsock32.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
include \masm32\include\gdi32.inc
include \masm32\include\comdlg32.inc
include \masm32\include\advapi32.inc
includelib \masm32\lib\wsock32.lib
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\gdi32.lib
includelib \masm32\lib\comdlg32.lib
includelib \masm32\lib\advapi32.lib
_send PROTO
.data
server db "213.180.193.106",0 ;тут я пошел другим путем,если не
;понимает yandex.ru,то поймет этот
helo_ db "HELO yandex.ru",13,10
mfrom_ db "MAIL FROM: ну тут типа адрес",13,10
rcpt_ db "RCPT TO: тут типа тоже адрес",13,10
datas_ db "DATA",13,10
from_ db "FROM: Sender ",13,10
to_ db "TO: Victim ",13,10
sub_ db "SUBJECT: Bla",13,10
this_ db "This is an e-mail",13,10
point_ db ".",13,10
quit_ db "QUIT",13,10
.data?
hInstance dd ?
wsa WSADATA <?>
sockaddr_1 sockaddr_in <?>
fd dd ?
.code
start:
invoke WSAStartup,101h,offset wsa
invoke socket,AF_INET,SOCK_STREAM,0
mov fd,eax ;это сохранили хэндл сокета
mov sockaddr_1.sin_family,AF_INET
invoke htons,25 ;порт 25
mov sockaddr_1.sin_port,ax
invoke inet_addr,ADDR server
mov sockaddr_1.sin_addr,eax ;вот и все!
invoke connect,fd,ADDR sockaddr_1,sizeof sockaddr_1
lea esi,helo_
mov ecx,16 ;16 - количество переданных байтов
;(было столько в моем варианте)
invoke _send
lea esi,mfrom_
mov ecx,30
invoke _send
lea esi,rcpt_
mov ecx,26
invoke _send
lea esi,datas_
mov ecx,6
invoke _send
lea esi,from_
mov ecx,14
invoke _send
lea esi,to_
mov ecx,12
invoke _send
lea esi,sub_
mov ecx,14
invoke _send
lea esi,this_
mov ecx,19
invoke _send
lea esi,point_
mov ecx,3
invoke _send
lea esi,quit_
mov ecx,6
invoke _send
invoke closesocket,fd
invoke WSACleanup
invoke ExitProcess,eax
_send proc
invoke send,fd,esi,ecx,0
xor ecx,ecx
ret
_send endp
end start
|
| | | | |
не работает 13.05.02 09:43
Автор: New Статус: Незарегистрированный пользователь
|
все равно письмо не приходит
кто-нибудь может поделиться 100% работающим исходником на асме?
|
|
|