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.
    Mal

    IdMessage1->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


Anmelden zum Antworten