DovgАвтор оригинала: Dovg
facelift
А все-таки
как кодируешь в миме, как отправляешь?
и можно ли кусок кода?
--
Отправь большой файл каким-нить тандербирдом
посмотри он кодирует вложения и сравни со своим
size_t Base64EncodeBuffer(unsigned char *destBuffer, const unsigned char *sourceBuffer, size_t bufferSize)
{
static const char cb64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz"
"0123456789+/";
const size_t lastByteCount = bufferSize % 3;
const size_t divSize = bufferSize - lastByteCount;
size_t i, j;
for(i = 0, j = 0; i < divSize; i += 3, j += 4)
{
destBuffer[j] = cb64[ sourceBuffer[i] >> 2 ];
destBuffer[j + 1] = cb64[ ((sourceBuffer[i] & 0x03) << 4) | ((sourceBuffer[i + 1] & 0xf0) >> 4) ];
destBuffer[j + 2] = cb64[ ((sourceBuffer[i + 1] & 0x0f) << 2) | ((sourceBuffer[i + 2] & 0xc0) >> 6) ];
destBuffer[j + 3] = cb64[ sourceBuffer[i + 2] & 0x3f ];
}
if(lastByteCount > 0)
{
destBuffer[j] = cb64[ sourceBuffer[i] >> 2 ];
destBuffer[j + 1] = cb64[ ((sourceBuffer[i] & 0x03) << 4) | ((sourceBuffer[i + 1] & 0xf0) >> 4) ];
destBuffer[j + 2] = (unsigned char) (lastByteCount > 1 ? cb64[ ((sourceBuffer[i + 1] & 0x0f) << 2) | ((sourceBuffer[i + 2] & 0xc0) >> 6) ] : '=');
destBuffer[j + 3] = (unsigned char)'=';
j += 4;
}
return j;
}
int TCPClient::SendFileBase64(FILE *fp)
{
//ASSERT(fp);
size_t totalSize = 0;
size_t size = 0;
const size_t bufSize = 1024;
const size_t sbufSize = bufSize * 3;
const size_t dbufSize = bufSize * 4;
unsigned char sbuf[sbufSize];
unsigned char dbuf[dbufSize];
size_t dsize = 0;
FILE *ffp = fopen("c:\\recv.txt", "wb");
while(!feof(fp))
{
size = fread(sbuf, sizeof(char), sbufSize, fp);
memset(dbuf, dbufSize, 0);
dsize = Base64EncodeBuffer(dbuf, sbuf, size);
int rc = send(m_Socket, reinterpret_cast<char *>(dbuf), dsize, 0);
fwrite(dbuf, sizeof(char), dsize, ffp);
if(rc == SOCKET_ERROR)
{
std::cerr << "WSAGetLastError = " << WSAGetLastError() << std::endl;
throw RecvException();
return -1;
}
totalSize += rc;
}
std::cout << std::endl << "Size is " << totalSize << std::endl;
return totalSize;
}
Есть мнение, что ваш код написан не на phpВопросы по программированию на РНР >

сравнение закодированного вложения с ним же из почтового клиента дало что-нибудь?
в Тандербирде ctrl+U, в бате F9 позволят посмотреть что пришло на самом делесохранил сообщение оно уже было незакодированное.
--------------080208090600030207050801
Content-Type: application/x-msdownload;
name="Setup_RepliGo_RPM1.0.1.exe"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="Setup_RepliGo_RPM1.0.1.exe"
TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA2AAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4g
RE9TIG1vZGUuDQ0KJAAAAAAAAADnsLO+o9Hd7aPR3e2j0d3tefLB7aHR3e1Z8sTtstHd7aPR
3O080d3tWfXB7avR3e1Z9ZjtotHd7Vn14O2i0d3tUmljaKPR3e0AAAAAAAAAAAAAAAAAA