Autor Beitrag
hitmiccs
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48



BeitragVerfasst: Mi 20.07.05 15:22 
Hallo.

Ich versuche mittels den im Titel angegebenen Komponenten in meinem Projekt ne Email zu versenden, im Grunde geht es mir um das versenden von Attachments in der Mail, aber langsam...

Wenn ich mit folgendem Code

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
procedure Tbtagesbericht.Button1Click(Sender: TObject);
var msg: TIdMessage;
   smtp: TIdSMTP;
begin
  msg.Clear;
  msg.Body.AddStrings:='toller Text';
  msg.From.Address := 'lalilu@speed.com';
  msg.Recipients.EMailAddresses := 'meins@gmx.de';
  msg.Subject := 'egal';
//  TIdAttachment.Create(msg.MessageParts, 'C:\Autoexec.Bat');
  smtp.Host := 'smtp.gmx.net';
  smtp.Username := 'meins@gmx.de';
  smtp.Password := 'gehtkeinenwasan';
  smtp.Port := 25;
  // Am Server Anmelden und abschicken
  SMTP.Connect;
  SMTP.Send(Msg);
end;


versuche eine Mail zu senden stürzt das Programm mit einer Exception ab (Zugriffsverletzung undsoweiter).

Was stimmt hier nicht?
Ich hab Indy 9 drauf, und hab damit schon gut gearbeitet, hat auch immer geklappt.

Die Forensuche gibt mir dahingehend keine Auskunft, daher ein neuer Thread.

Über mögliche Lösungsansätze wäre ich froh! :)
maxk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: Mi 20.07.05 15:35 
Hallo,
du musst die Komponenten vorher erstellen:
ausblenden ungetesteter Sourcecode:
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:
procedure Tbtagesbericht.Button1Click(Sender: TObject);  
var msg: TIdMessage;  
   smtp: TIdSMTP;  
begin  
  msg:=TidMessage.Create;
  smtp:=TidSMTP.Create(nil);
  try
   msg.Clear;  
   msg.Body.AddStrings:='toller Text';  
   msg.From.Address := 'lalilu@speed.com';  
   msg.Recipients.EMailAddresses := 'meins@gmx.de';  
   msg.Subject := 'egal';  
//   TIdAttachment.Create(msg.MessageParts, 'C:\Autoexec.Bat');  
   smtp.Host := 'smtp.gmx.net';  
   smtp.Username := 'meins@gmx.de';  
   smtp.Password := 'gehtkeinenwasan';  
   smtp.Port := 25;  
   // Am Server Anmelden und abschicken  
   SMTP.Connect;  
   SMTP.Send(Msg);  
 finally
   smtp.Free;
   msg.Free;
 end;
end;


Gruß,
maxk

_________________
Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
hitmiccs Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48



BeitragVerfasst: Mi 20.07.05 15:56 
Danke maxk, das funktioniert jetzt super :) :) Vielen Dank!

Nächstes Problem, wenn ich die Attachment-Funktion (die auskommentiert war) benutzen will, schreibt Delphi mir nen Fehler hin, von wegen: Undefinierter Bezeichner: TIdAttachment

Wo finde ich die Komponente? In meinen Indy-Registern ist sie irgendwie nicht drin, oder ich habe Tomaten auf den Ohren......
maxk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: Mi 20.07.05 16:05 
Du musst die Unit IdMessage einbinden ;) (Also relativ weit oben im Quellcode IdMessage in die Liste hinter uses schreiben)

Gruß,
maxk


// Edit: Wobei die eigentlich schon drin sein müsste, wenn du idMessage verwenden kannst :?
// Edit: Aha, in neueren Indyversionen heißt die Unit idAttachment :D

_________________
Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
hitmiccs Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48



BeitragVerfasst: Mi 20.07.05 16:10 
Ist sie ja auch schon! Und die verschickte Mail kommt ja auch an, von daher ist alles bestens. Nur wenn ich TIdAttachment wieder aktiviere spuckt mir Delphi nen Fehler aus.

Muss ich mir jetzt erst die neueste Indyversion ziehen oder kann man die Komponente auch separat irgendwo laden?

Edit: Sorry hatte dein Edit zu spät gesehen. Teste es jetzt!


Zuletzt bearbeitet von hitmiccs am Mi 20.07.05 16:19, insgesamt 2-mal bearbeitet
maxk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: Mi 20.07.05 16:12 
Du hast es jetzt vllt. durch meinen vielen Edits nicht mitbekommen, was ich eigentlich meine. Oben sollte idMessage und idAttachment drin stehen. Die Komponenten gibt es auf jeden Fall, nur dass sie bei anderen Indyversionen woanders wohnt 8)


// Edit:
Zitat:
Edit: Sorry hatte dein Edit zu spät gesehen. Teste es jetzt!
:rofl:

_________________
Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
hitmiccs Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48



BeitragVerfasst: Mi 20.07.05 16:21 
Habs gestestet und es kommt keine Fehlermeldung mehr :) nur kommt die Mail halt ohne Anhang an (ne Textdatei) :(
Ich hänge mit TIdAttachment.FileName:='Dateiname.txt' die Datei an, ist das falsch?
Was muss ich sonst noch an Code dazuhängen...?

ps: Beim rumprobieren ist mir bei TIdAttachment.Create was untergekommen wie 'Collection', was muss ich tun, hilfe... :(

Edit(mal wieder): Ich hab mehrfach gefunden das man mit TIdAttachment.Create(msg.MessageParts,MeineDatei) den Anhang dranbauen kann, geb ich jedoch dies in meinen Quellcode ein, kommt der Fehler: Zu viele Parameter!!! AArgggl. *verzweifel*