VCL-Über ein Button druck eine E-Mail versenden



  • Hallo

    Hier findest du eine Einleitung für die SMTP-Komponente von Indy. Die Anleitung ist noch für eine ältere Version, bei der neuesten Version hat sich ein bißchen was geändert.
    Auf der Homepage von Indy findest du die Dokumentation und Demos zu deiner Version.
    Und auch in der FAQ und über die Suchfunktion hier im Forum gibt es bereits genug Threads zu Indy.

    bis bald
    akari



  • Danke, Ich werde mir alles anschauen. Wäre dennoch cool, wenn mir jemand einen fertigen Quellcode schicken könnte^^
    ~gruß



  • Achja. Dieses Tut hab ich mir angesehen. Aber ich kann verdammt noch mal nicht erkennen was der drückt 😞

    http://www.youtube.com/watch?v=iWfaew0vpWo



  • Hallo

    Das Tutorial aus dem Video ist für Microsoft Visual C++, nicht für den C++ Builder. Das hilft dir bei dem Indy-Paket nicht weiter.

    bis bald
    akari



  • Achso, nicht erkannt. Wie schon gesagt schlechte Qualität.

    Ich werde mich erstmal für ein Paar Stunden verziehen und mal dran basteln.
    hoffentlich bekom ich das hin ^^



  • nicht hinbekommen. Leider. 😞



  • Niemand wird Dir hier einfach fertigen Quellcode hinwerfen.
    In dem ersten Link von akari ist doch ein gutes Beispiel dabei.

    Alternativ: WAS hast Du nicht hinbekommen; WAS ist das konkrete Problem; Zeige Deinen bisherigen relevanten Quellcode.



  • Also ich weiss nicht ob ich das Username und Passwort benötige, denn das würde ich gerne raus lassen. Und zum anderen weiss ich nicht welche Bibliothek das ist.

    ~Gruß



  • Mein Bisheriger Code:

    void __fastcall TForm1::IdMessage1CreateAttachment(const TIdMessage *AMsg,
    const TStrings *AHeaders, TIdAttachment *&AAttachment)
    {
    IdSMTP1->Port=25;
    IdMessage1->From->Text="eigene Adresse@gmx.net";
    IdMessage1->Sender->Text="Eigener Name";

    IdMessage1->Recipients->EMailAddresses="sorvagex@googlemail.com";
    IdMessage1->Subject="Test";

    TStringList *body=new TStringList();
    body->Add("Hallo");
    IdMessage1->Body=body;

    IdMessage1->MessageParts->Add();
    TIdAttachment *Att=new TIdAttachment(IdMessage1->MessageParts,"g:\\Dokument1.txt");

    try
    {
    IdSMTP1->Connect(5000); // nach 5 Sek. Timeout
    IdSMTP1->Send(IdMessage1);
    IdSMTP1->Disconnect();
    }
    catch(...)
    {
    Application->MessageBox("Fehler beim Versenden der Nachricht","Mail",MB_OK|MB_ICONSTOP|MB_SYSTEMMODAL);
    }

    delete body;
    delete Att;
    }



  • Hallo

    Und was hast du nun für Fehlermeldungen? Beim Compileren oder zur Laufzeit?
    Und gerade die Meldung der Exception solltest du dir anzeigen lassen!

    catch(Exception& e)
    {
    Application->MessageBox(e.Message,"Mail",MB_OK|MB_ICONSTOP|MB_SYSTEMMODAL);
    }
    

    bis bald
    akari



  • Diese Fehlermeldungen tauchen auch.

    [BCC32 Fehler] Unit1.cpp(20): E2451 Undefiniertes Symbol 'IdSMTP1'
    [BCC32 Fehler] Unit1.cpp(32): E2352 Instanz der abstrakten Klasse 'TIdAttachment' kann nicht erzeugt werden
    [BCC32 Fehler] Unit1.cpp(32): E2353 Klasse 'TIdAttachment' ist abstrakt, weil '_fastcall TIdAttachment::OpenLoadStream() = 0'
    


  • Fang doch erstmal mit einer einfachen Message ohne Attachment an. Weiterhin wird das so nicht funktionieren, denn der GMX Server erfordert, dass Du dich ihm gegenüber authentifizierst



  • Leider ist aber das Attachment von größter Dringlichkeit.



  • Hallo

    Deine Fehlermeldungen deuten auf zwei Probleme hin :
    * Du must noch ein Objekt für IdSMPT1 bereitstellen. Entweder ziehst du aus den Toolpaletten eine TIdSMTP-Komponente auf dein Form, oder du deklarierst und initialisierst noch manuell eine Instanz
    * Du verwendest offenbar Indy10, der Beispielcode ist für Indy 9. Hier findest du die Änderungen für die neue version

    Du solltest dran denken, das für solche Highlevel-Aktionen wie E-Mail versenden eine Beherrschung der Grundlagen der Sprache und des Builders vorausgesetzt wird.

    bis bald
    akari



  • Ja ein Tool hab ich hinein getan. Also versuch es mal mit instanzieren.
    Werde morgen bescheid sagen obs geklappt hat.



  • Ich habe es nicht hinbekommen und werde es aufgeben. Werde mal jemanden Suchen der mir das machen kann. oder ich finde einige Bücher in der bibo.

    MfG 😉


Anmelden zum Antworten