cookiefi Skrevet 15. juni 2006 Del Skrevet 15. juni 2006 Hum, har støtt på et lite problem. Skulle lage et program som kunne sende e-mail winsocken vra helt grei og det funka. Men når jeg skulle ha programmet til og sette inn e-mailen til senderen ble det kluss. Utdrag fra koden: if( SOCKET_ERROR != connect(Client, (LPSOCKADDR)&ServerInfo, sizeof(ServerInfo)) ) { char Data[512]; char epost[80]; strcpy_s( Data, "HELO server\r\n" ); strcat_s( Data, "MAIL FROM:<[email protected]>\r\n" ); sprintf_s( epost,"RCPT TO: %s \r\n", emailt); strcat_s( Data, epost ); strcat_s( Data, "DATA\r\n" ); strcat_s( Data, "Subject: Test\r\n\r\n" ); // To ganger (RFC 882) strcat_s( Data, "The text bla, bla, bla, bla... \r\n" ); strcat_s( Data, "\r\n.\r\n" ); strcat_s( Data, "QUIT \r\n" ); Som dere ser ovenfor så laget jeg en sprintf_s som skal lese inn innholdet fra en string (emalt som er der adressen blir lagret) som senere skal sende den vidre ned i scriptet slik at den blir tastet inn. Men det funker ikke helt som jeg hadde tenkt. Det står nemmelig at det ikk er noen verdi i eposten det kommer fram med RCPT og alt men selve stringen blir ikke lest inn den har en verdi på NULL Så er det noen som har en ide på hva problemet kan være? Lenke til kommentar
einaros Skrevet 15. juni 2006 Del Skrevet 15. juni 2006 "som senere skal sende den vidre ned i scriptet slik at den blir tastet inn" -- Hva mener du egentlig med dette? Lenke til kommentar
cookiefi Skrevet 15. juni 2006 Forfatter Del Skrevet 15. juni 2006 "som senere skal sende den vidre ned i scriptet slik at den blir tastet inn" -- Hva mener du egentlig med dette? 6311798[/snapback] Med det så mener jeg at tidligere i programmet har jeg laget en string som heter emailt i denne så blir e-posten tastet inn slik at det skal være mulig Her: sprintf_s( epost,"RCPT TO: %s \r\n", emailt); strcat_s( Data, epost ); Og legge den inn i en setning i winsocken slik at komandoen blir da: RCPT TO: eposten som er tastet inn Så problemet er da her og få en string inn i winsock programmet. Hvis det er andre mulighter for og få en string ned i winsock så godtas det Lenke til kommentar
einaros Skrevet 15. juni 2006 Del Skrevet 15. juni 2006 Gjør heller noe ala string makeSMTPConversation(const string& szSender, const string& szReceiver, const string& szSubject, const string& szBody) { const char* _HELO = "HELO "; const char* _MAILFROM = "MAIL FROM: "; const char* _RCPTTO = "RCPT TO: "; const char* _DATA = "DATA"; const char* _SUBJECT = "Subject: "; const char* _ENDDATA = "."; const char* _QUIT = "QUIT"; const char* _TERM = "\r\n"; std::ostringstream sMail; sMail << _HELO << "mememe.com" << _TERM << _MAILFROM << szSender << _TERM << _RCPTTO << szReceiver << _TERM << _DATA << _TERM << _SUBJECT << szSubject << _TERM << _TERM << szBody << _TERM << _TERM << _ENDDATA << _TERM << _QUIT << _TERM; return sMail.str(); } Lenke til kommentar
cookiefi Skrevet 15. juni 2006 Forfatter Del Skrevet 15. juni 2006 Er det c++? Hvis tilfelle kan du forklare litt rundt koden du har skrevet ? Det ville vært fint. Lenke til kommentar
lnostdal Skrevet 17. juni 2006 Del Skrevet 17. juni 2006 (endret) det der er helt vanlig standard C++ og krever ingen forklaring i det hele tatt .. (jeg tuller ikke, og er heller ikke "overlegen" ellernoeslikt) .. nybegynnerboka du sitter med forklarer dette (om du ikke har hatt skikkelig uflax og skaffet en megadårlig en) `std::stringstream' gjør det enklere å jobbe med strenger (edit: og/eller "data") i C++: #include <iostream> #include <sstream> using namespace std; int main() { stringstream ss; unsigned int x = 6; ss << "Lars fyller " << 26 << " om " << x << " dager." << endl; cout << ss.str(); return 0; } "Thinking in C++" @ google har noen kapitler om streams og stringstream Endret 17. juni 2006 av lnostdal Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå