IdSMTP Problem
-
Hallo ich lese einen Text aus einer Datei aus diese möchte ich nun gerne per Email Versenden.
Aber wenn ich ihn versende dann kommen nur so komische Zeichen beim Empfänger an.
Ich denke mal das Problem liegt hier:
TStringList *body = new TStringList();
body->Add( text.c_str() ); // text
IdMessage1->Body=body;Kann mir wer sagen wie man es richtig macht ?
Als IDE benutze ich: RAD Studios 2007
char *buf; int size=0; string text ="NULL"; datei.seekg(0,ios::end); file_size = datei.tellg(); datei.seekg(0,ios::beg); buf = new char [ file_size ]; datei.read ( buf , file_size ); datei.close(); text = buf ; int ret = DeleteFile("datei.txt"); Edit2->Text = IntToStr(ret); IdSMTP1->Host="smtp.web.de"; //IdSMTP1->Host="smtp.web.de"; IdSMTP1->Username="xxxxxxxxx"; //web.de login name absender test_acccc@web.de@web.de IdSMTP1->Password="xxxxxxxxx"; //web.de pw für den email acc IdSMTP1->Port=25; IdMessage1->From->Text="xxxxxxxxxxxxxx"; //email des absenders IdMessage1->Sender->Text="test"; //name des absenders IdMessage1->Recipients->EMailAddresses="xxxxxxxxxxxxx"; // email des empfängers IdMessage1->Subject="hallo"; // Betreff TStringList *body = new TStringList(); body->Add( text.c_str() ); // text IdMessage1->Body=body; try { IdSMTP1->Connect(); IdSMTP1->Send(IdMessage1); IdSMTP1->Disconnect(); } catch (...) { ShowMessage("Fehler beim Mailversand"); } } Edit1->Text = IntToStr(file_size);
-
Hallo,
in meiner Hilfe steht, dass "Body" eine TStrings- und keine TStringList-Eigenschaft ist.
MalIdMessage1->Body = text.c_str();
versucht?
-
[BCC32 Fehler] Unit1.cpp(104): E2034 Konvertierung von 'const char *' nach 'TStrings *' nicht möglich
-
Hallo
Ich verstehe nicht warum du es so umständlich machst? Warum std::string (und nicht String), und warum extra ein body-TStringList? Warum das unnötige herumkopiere einer Datei?
String a = "..."; Message->Body->Text = a; // a ersetzt den gesamten bisherigen Text Message->Body->Add(a); // a wird an bisherigen Text angehängt Message->Body->LoadFromFile("datei.dat"); // Inhalt der Textdatei ersetzt bisherigen Text
Natürlich kann LoadFromFile nur für reine Text-Dateien aufgerufen werden. Binäre Dateien müßen über Dateianhänge versendet werden.
bis bald
akari
-
Ja LoadFromFile jetzt erinnere ich mich.
sry ich mache nicht so viel mit der VCL.
ty für die antworten