Delphi: Функция для отправки письма с аттачментом c помощью winsock
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Delphi: Функция для отправки письма с аттачментом c помощью winsock - 2007-10-12 14:49:07.730000
|
|
|
o_OBallers
Сообщений: 54
Оценки: 0
Присоединился: 2007-10-11 08:05:42.076666
|
Нужна функция которая отправляет письмо с аттачментом на e-mail, минуя любые промежуточные сервера. Что-то вроде : function Send(email,FileName:String):boolean;
|
|
|
RE: Delphi: Функция для отправки письма с аттачментом c помощью winsock - 2007-10-12 14:50:04.060000
|
|
|
blacksun
Сообщений: 2360
Оценки: 0
Присоединился: 2006-09-27 03:05:59.350000
|
Ты решил написать троя спрашивая каждую функцию на форуме?
|
|
|
RE: Delphi: Функция для отправки письма с аттачментом c помощью winsock - 2007-10-12 15:14:09.820000
|
|
|
redsh
Сообщений: 338
Оценки: 0
Присоединился: 2007-06-17 22:35:25.540000
|
Есть же в дельфи компонент для отправки e-mailов? По-моему, TSMTP (ищи на вкладке FastNet). Если ненравиццо, то погугли другие компоненты…
|
|
|
RE: Delphi: Функция для отправки письма с аттачментом c помощью winsock - 2007-10-13 10:05:52.113333
|
|
|
o_OBallers
Сообщений: 54
Оценки: 0
Присоединился: 2007-10-11 08:05:42.076666
|
Читал RFC по SMTP протоколу, эксперемтировал ничего не получается, подумал что это уже давно написанно до меня. Никаких компонентов использовать мне не хочется, да и про аттчмент в RFC ничего не сказанно.
|
|
|
RE: Delphi: Функция для отправки письма с аттачментом c помощью winsock - 2007-10-13 10:40:31.120000
|
|
|
redsh
Сообщений: 338
Оценки: 0
Присоединился: 2007-06-17 22:35:25.540000
|
Аттачмент не относится к SMTP протоколу. Можешь перехватить SMTP трафик, поставив Log Breakpoint на функцию send и посмотреть как посылается сообщение с аттачментом (исследуй любой почтовый клиент, например, аутглюк).
|
|
|
RE: Delphi: Функция для отправки письма с аттачментом c помощью winsock - 2007-10-13 12:25:59.476666
|
|
|
o_OBallers
Сообщений: 54
Оценки: 0
Присоединился: 2007-10-11 08:05:42.076666
|
Такое ощушение что здесь все полностью пользуются indy и fastnet, мне нужна такая функция но не хочется изобретать велосипед.
|
|
|
RE: Delphi: Функция для отправки письма с аттачментом c помощью winsock - 2007-11-12 08:56:45.270000
|
|
|
Necromancer13
Сообщений: 146
Оценки: 0
Присоединился: 2007-06-28 02:00:57.563333
|
вот…. вчера прогу писал… правда на АСМе… отправка письма с аттачем:
;**************************************************************************************;
;* *;
;* [NecroJan] *;
;* Written by ASM_Maniac *;
;* 11.11.2007 *;
;* *;
;**************************************************************************************;
format PE GUI 4.0
entry start
include '%fasminc%\win32a.inc'
include '%fasminc%\macro\if.inc'
section '.flat' code readable writeable executable
;##############################################################################
;----------------- MACROSES ---------------------------
macro RecvString
{
invoke recv,[sock],buf,512,0
}
macro SendString strStr
{
invoke lstrlen,strStr
invoke send,[sock],strStr,eax,0
}
;---------------------- DATA -----------------------------
wsadata WSADATA
saddr sockaddr_in
sock dd ?
port dd 25
hFile dd ?
hMapFile dd ?
pMemory dd ?
MailBody dd ?
;-------------------------------------------------------------
proc SendMail strMailBody,MailBodySize,strAttachFile
invoke lstrlen,strLogString
mov esi,strLogString
mov edi,strLogin
push ebp
mov ebp,eax
call b64.encode
pop ebp
invoke lstrlen,strPassString
mov esi,strPassString
mov edi,strPassword
push ebp
mov ebp,eax
call b64.encode
pop ebp
invoke WSAStartup,202h,wsadata
invoke socket,2,1,0
.if eax <> 0
mov [sock],eax
invoke gethostbyname,strServer
.if eax <> 0
mov eax,[eax+0Ch]
mov eax,[eax]
mov eax,[eax]
mov [saddr.sin_addr],eax
mov [saddr.sin_family],AF_INET
mov ax,word [port]
rol ax,8
mov [saddr.sin_port],ax
invoke connect,[sock],saddr,sizeof.sockaddr_in
.if eax = 0
RecvString
SendString strEHLO
RecvString
SendString strAUTHLOGIN
RecvString
SendString strLogin
SendString strCrLf
SendString strPassword
SendString strCrLf
SendString strMAILFROM
SendString strLogString
SendString strSKOBKA
SendString strRCPTTO
SendString strRcpt
SendString strSKOBKA
SendString strDATA
RecvString
.if [strAttachFile] <> 0
invoke CreateFile,[strAttachFile],GENERIC_READ or GENERIC_WRITE,0,0,OPEN_EXISTING,0,0
.if eax <> 0FFFFFFFFh
mov [hFile],eax
invoke GetFileSize,eax,0
mov ebx,eax
rol eax,1
add eax,[MailBodySize]
invoke LocalAlloc,LMEM_FIXED,eax
.if eax <> 0
mov [MailBody],eax
mov edi,eax
mov esi,[strMailBody]
mov ecx,[MailBodySize]
rep movsb
invoke CreateFileMapping,[hFile],0,PAGE_READWRITE,0,ebx,0
.if eax <> 0
mov [hMapFile],eax
invoke MapViewOfFile,eax,2,0,0,0
.if eax <> 0
mov [pMemory],eax
mov esi,eax
push ebp
mov ebp,ebx
call b64.encode
pop ebp
mov ax,0A0Dh
stosw
mov ax,0A0Dh
stosw
mov al,'.'
stosb
mov ax,0A0Dh
stosw
mov eax,edi
sub eax,[MailBody]
mov ebx,eax
invoke send,[sock],[MailBody],ebx,0
RecvString
invoke UnmapViewOfFile,[pMemory]
.endif
invoke CloseHandle,[hMapFile]
.endif
invoke LocalFree,[MailBody]
.endif
invoke CloseHandle,[hFile]
.endif
.else
SendString [strMailBody]
RecvString
.endif
.endif
.endif
invoke closesocket,[sock]
.endif
invoke WSACleanup
ret
endp
;-------------------------------------------------------------
b64:
.newline:
call b64.store_crlf
.encode:
push (76 shr 2)+1
pop edx
.outer:
dec edx
je b64.newline
lodsd
dec esi
inc ebp
bswap eax
mov 
|
|
|
RE: Delphi: Функция для отправки письма с аттачментом c помощью winsock - 2007-11-13 10:03:27.396666
|
|
|
Alaget
Сообщений: 330
Оценки: 0
Присоединился: 2007-11-08 15:57:53.170000
|
Если такой специалист, то тогда перведи, этот исходник, из фасма, или что там у тебя во встроенный ассемблер в делфи.
|
|
|
RE: Delphi: Функция для отправки письма с аттачментом c помощью winsock - 2007-11-13 13:00:50.600000
|
|
|
Necromancer13
Сообщений: 146
Оценки: 0
Присоединился: 2007-06-28 02:00:57.563333
|
когда будет свободное время - под МАСМ32 переведу:) а под Дельфи по другому, долго будет и нудно… я люблю больше норм. асм, а не встроенный… Кстати, респект, что так любишь Delphi, от тебя все время о нем слышу… я на нем пробовал писать… просто мне не нравится то, что он устаревает… а СИ и АСМ вечные… =)
|
|
|
RE: Delphi: Функция для отправки письма с аттачментом c помощью winsock - 2007-11-13 13:07:35.886666
|
|
|
Necromancer13
Сообщений: 146
Оценки: 0
Присоединился: 2007-06-28 02:00:57.563333
|
ЗЫ. Я не говорил, что я специалист и таким себя не считаю [>:]
|
|
|
|
|