Автор
|
Тема: снова Енто SMTP
|
matrix |
опубликован 18-04-2001 23:07 MSK
Как однако... переслать бинарный файл...однако приходит какойто погрызаный...однако Не хорить же его однако..:+)
|
aldep
|
опубликован 19-04-2001 12:51 MSK
Надо в заголовке выставить Content-Type: multipart/mixed; И в секции бинарного файла проставить Content-Type: application/binary
|
matrix
|
опубликован 19-04-2001 03:50 MSK
не помогло... тоже самое.. строки с 0 теряются..
|
matrix
|
опубликован 19-04-2001 18:32 MSK
Плиз помогите примером... Чего писать после "DATA:"... чтоб бинарный файл отправить.. |
Demo_S
|
опубликован 19-04-2001 18:44 MSK
Разве я не тебе исходник QMailer отсылал, который атачи посылает? или он неправильно это делает, ты скажи если что, а то я с ним не сильно разбиралси/. |
matrix
|
опубликован 20-04-2001 02:57 MSK
Да за исходник пасиба...:) Там какая то хитрая перекодировка для текста.. (которую я опустил).. и отдельно для аттачмента.. (ее и стебрил) Приходит текст без нулевых строк..перекодирован непонятно как... Т.е. понятно как,но зачем....? Я так понимаю если чего кодировать.. То какой нить дядька на севере должен перекодировать абратно.. Для этого есь наверно какие нить общие таблицы.. Как ваще передавать бинарные файлы через send()// |
Demo_S
|
опубликован 20-04-2001 15:15 MSK
char buffer[lng]; //записуем че нить в buffer, включая нули и все что хочешь res=send(s,buffer,lng); |
matrix
|
опубликован 21-04-2001 02:39 MSK
Вроде так... Делаю мап файла в буфер... (Маленький файлик)) HANDLE hFile,hFileMap; LPVOID pbFile; DWORD qwS; __int32 qwSize; char dat[7000]; hFile=CreateFile( "C:\\1.exe",GENERIC_READ,NULL,NULL,OPEN_EXISTING,FILE_FLAG_SEQUENTIAL_SCAN,NULL); hFileMap=CreateFileMapping(hFile,NULL,PAGE_READONLY,0,0,0); pbFile=MapViewOfFile(hFileMap,FILE_MAP_READ,NULL,NULL,NULL); qwSize=GetFileSize(hFile,&qwS); memcpy(&dat,(char *)pbFile,qwSize); CloseHandle(hFile); CloseHandle(hFileMap);#define SEND(data,datalen)\ {num = 0;\ while (num < datalen) {\ ph = send(s, (char*)(dat + num), datalen - num, NULL);\ if (ph==SOCKET_ERROR) goto goto_on_error;\ num += ph;\ };\ } SEND(dat,qwSize) |
matrix
|
опубликован 21-04-2001 02:43 MSK
И дык прихлодит какойто хлам... |
Demo_S
|
опубликован 22-04-2001 21:41 MSK
А получаешь ты его как? |
matrix
|
опубликован 23-04-2001 02:13 MSK
Сотрю свой мыл..:) |
breeder
|
опубликован 23-04-2001 10:13 MSK
SMTP подразумевает что передаются текстовые данные, причем длина строки ограничена. Для передачи двоичных данных их кодируют (uue или MIME) http://www.ietf.org/rfc/rfc1521.txt?number=1521 - описание кодирования MIMEДля примера - сохрани какое-нибудь письмо с аттачем в файл и посмотри что там внутри :) |
matrix
|
опубликован 23-04-2001 18:29 MSK
То шо нуно... Пасиба... Получилось.....:)) (Всунул лишний символ после base64)
|