Entwickler-Ecke
Internet / Netzwerk - TIdMessage ist undefinierter Bezeichener
LowSkills - Mi 02.05.07 12:53
Titel: TIdMessage ist undefinierter Bezeichener
Aloha!
Ich habe ein Problem mit dem versenden von Mails via selbst geschriebenem Proggi.
Der nachstehende Quellcode (stammt aus einem anderen Thread) erwartet einige Punkte oder Programmfeatures, die mein Delphi ohne die Deklaration in der USES oder die Installation gewisser Features nicht kennt.
Habe schon jede Menge Foren durchforstet und Threads durchstöbert, aber ich weiß nicht, wo das fehlt, was mir fehlt, wovon ich aber auch nicht weis, was überhaupt fehlt!
Auf den Punkt gebracht:
Die Exception bekomme ich bereits in den VAR's (zweite Zeile) -> undefinierter Bezeichener 'TIdMessage'
Wer kann mir da weiterhelfen?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| procedure TFormSendMail.BitBtn1Click(Sender: TObject); var msg: TIdMessage; begin msg := TIdMessage.Create(Self); with msg do begin Sender.Text := 'sender@domain.com'; Sender.Name := 'Sender'; Sender.DisplayName := 'Ich bin der Sender'; Recipients.EMailAddresses := 'empfaenger@destination.de'; Body.Add('Text der Mail'); Subject := 'Test'; end;
with IdSMTP1 do begin Host := 'mail.provider.de'; Username := 'meinuser'; Password := 'meinpasswort'; Connect(); try Send(msg); except ShowMessage(IdSMTP1.LastCmdResult.Code+' - '+IdSMTP1.LastCmdResult.Text.Text); end; Disconnect; end; end; |
Tino - Mi 02.05.07 13:09
Die Unit IdMessage.pas muss in die Uses-Liste hinzugefügt werden. ;-)
Gruß
Tino
LowSkills - Mi 02.05.07 13:12
:(
Oh Schreck.
Die hat aber dann doch derjenige, der den o. g. Quellcode "zu verantworten" hat, ne?
Also fehlt einem Lauffähigen eMail-Client per Delphi noch ne ganze Menge Quellcode???
:(
LowSkills - Mi 02.05.07 13:49
:( uff...
bin deinem Link mal brav gefolgt und nicht wirklich klüger geworden. Was genau brauch ich denn da und wie realisiere ich das? Ich verstehe nur noch INDY :)
Also ich muss de facto was runterladen (vermutlich eine der INDY-dinger ?) und installieren, damit ich damit arbeiten kann, richtig?
Klabautermann - Mi 02.05.07 13:54
Hallo,
LowSkills hat folgendes geschrieben: |
Also fehlt einem Lauffähigen eMail-Client per Delphi noch ne ganze Menge Quellcode???
:( |
selbstverständlich fehlt da eine ganze menge. Die von dir gepostete Funktion schickt einen Festen Text von einem Festen Absender über einen Festen Server an einen Festen Empfänger. Bei einem E-Mail Client währe es z.B. recht schön, wenn man diese Werte alle eingeben könnte. Auch das Abrufen von E-Mails währe nicht unpraktisch. Und willst du deinen Nutzern vielleicht auch ein Adressbuch oder ähnliches anbieten?
Du siehst, da ist noch eine ganze Menge zu tun.
Gruß
Klabautermann
LowSkills - Mi 02.05.07 14:11
Ja und nein ;)
Das Programm muss aufgrund vorgegebener Tabellen eine Art Serienmail mit jeweils leicht variablem text rausschicken. Die Variablen sind also "nur" die Empfänger, die Mail bleibt bei jeder Versendung im Grundgedanken die selbe (autmatisiert erstelleter Inhalt), der Absender ist von Fall zu Fall (je nach Empfänger) ein Anderer (automatisiert), aber ein Client im eigentlichen Sinne ist es nicht. Es werden keine eMails mit dem Proggi abgerufen und auch ein Adressbuch wird nicht von Nöten sein.
Um das mal mit deinen Worten zu sagen, alles ist "fest".
Und um die Frage schonmal vorweg zu nehmen, es handelt sich hierbei um ein Proggi, dass innerhalb meines Tätigkeitsbereiches gewisse sonst per Hand auszuführende Schritte für mich erledigt. Im Genauen geht es da um eine Flächendeckende Anfrage an Kunden von uns, die zweimal Pro Jahr rausgeht.
Kurz: Es handelt sich nicht um KEIN SPAM-Programm, was wahrscheinlich sonst leicht in den Focus geraten könnte.
Ist mir zu helfen? ;)
Tino - Mi 02.05.07 14:26
LowSkills hat folgendes geschrieben: |
| Also ich muss de facto was runterladen (vermutlich eine der INDY-dinger ?) und installieren, damit ich damit arbeiten kann, richtig? |
Ja, richtig. ;-)
LowSkills - Mi 02.05.07 14:31
auch auf die Gefahr hin, dass meine Frage wieder zitiert und mit "Ja, richtig" beantwortet wird, stelle ich sie: Muss man dir alles aus der Nase ziehen?
Ich bin doch so ein hilfloser Mensch! :)
WAS genau muss ich den runterladen? Wie gesagt, deinem Link gefolgt war so viel INDY zu findy, dass ich als sog. Noob einfach überfordert bin ;)
Klabautermann - Mi 02.05.07 14:36
Am besten du erzählst uns erst einmal welche Delphi Version du nutzt, denn vielelicht sind die da ja schon automatisch mit drin. Und wenn du bei so einer Version dann einfach versuchst die noch mal rüber zu installieren gibt es viel Komplikationen.
Gruß
Klabautermann
Tino - Mi 02.05.07 14:37
Hier solltest du die letzte Version erhalten:
http://indy.fulgan.com/ZIP/indy10.zip (6,1 MB)
Entpacken und anschl. installieren. Danach sollten die Komponenten zur Verfügung stehen und dein oben geposteter Quellcode complierbar sein.
LowSkills - Mi 02.05.07 14:47
@klabautermann: Vers. 6,
@tino: danke, werds heut abend ausprobieren,
@ mich selber: dran denken, die Version zu prüfen *grins*
Danke schonmal vorab, bin sicher, ihr hört noch von mir ;)
LowSkills - Mi 02.05.07 19:47
Bin wieder im thread. leider :(
Ich bekomm jetzt die message, dass "Username" ein undefinierter Bezeichner ist.
Hab daher mal einen anderen Quellcode ausprobiert und wieder das selbe Spiel, da hieß es dann alternativ SMTP.USername, aber auch da war der Username undeclared.
Weiter geht es mit der Zeile LastCmdResult... auch undeclared :(
Wer kann helfen?
Jochen W. - Do 03.05.07 10:48
Hast du die Komponenten (TIdSMTP) auch auf das Formular gesetzt? Sind alle Units definiert? Sind die Suchpfade korrekt gesetzt?
LowSkills - Fr 04.05.07 17:32
Die Komponenten 'IdMessage1' und 'IdSMTP1' sind jetzt auf meiner Form, den Username hab ich jetzt in den VAR als variant angegeben, wie mir die Hilfe, wenngleich ich da auch nur halb fündig wurde, suggerierte. Ich weiss allerdings nicht ob die decl als variant jetzt ein Schritt in die Richtige Richtung oder vom Ziel weg war. Bei LastCMDResult bin ich allerdings völlig am Ende meines Lateins, da hat meine DelphiHilfe keinen Eintrag zu. Muss dafür auch ne Komponente her? wenn ja welche?
Vielen lieben Dank!
;)
LowSkills - So 13.05.07 12:58
Hallo zusammen.
So wirklich habe ich jetzt nichts geändert, aber irgendwie funtkoinert es jetzt. Zugegeben, ich hatte hilfe dabei aber wozu hat man Freunde? Jedenfalls lieben Dank an alle, die sich das hier angeschaut haben und fleißig mithalfen.
Hier nochmal der Formvollendete Quelltext...
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| procedure TForm1.Button2Click(Sender: TObject); var IdMsg: TIdMessage; begin IdMsg := TIdMessage.Create(nil); try
idpop3.connect; messagedlg('Sie haben '+Inttostr(IDpop3.CheckMessages+1)+' Nachrichten auf dem Server, die zusammen '+InttoStr(IDpop3.RetrieveMailBoxSize div 1024)+ ' kb groß sind',mtinformation,[mbok],0);
IdSMTP.Connect;
IdMsg.From.Address := 'h.ehrens@prodigit-online.de'; IdMsg.Recipients.EMailAddresses := 'h.ehrens@prodigit-online.de'; IdMsg.Subject := 'Test';
IdSMTP.Send(IdMsg); finally FreeAndNil(IdMsg); end; end; |
Es funktioniert jedenfalls, und das ist erstmal die hauptsache.
Danke nochmal!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!