Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   idsmtp (https://www.delphipraxis.net/160070-idsmtp.html)

value is NULL 26. Apr 2011 14:40

idsmtp
 
Hi Delphianer

Beschäftige mich seit kurzem mit idsmtp und habe folgendes problem.
Beim Aufruf meiner "Send Mail" Function bekomme ich immer: Exception der Klasse EAccessViolation: Zugriffsverletzung bei Adresse 004073FA.
nach einem Debug habe ich festgestellt, dass das schon bei der ersten Zeile der Funktion passiert. Hier der Code:

Delphi-Quellcode:
function send_mail(Recipient:string;CCList:string;sSubject:string;Body:TStringList) : boolean;
var
  nAlarmnr:integer;
  email : TIDMessage;
  IdSMTP: TIdSMTP;

begin

try
 idsmtp.Username := test@yahoo.com';
 idsmtp.Password := pw;
 idsmtp.Host    := server;
 idsmtp.Port    := 465;

 email := TIDMessage.Create(nil);
 email.From.text :='test@yahoo.com';
 email.Sender.text:= email.From.text;
 email.Recipients.EMailAddresses:= Recipient;
 email.CCList.EMailAddresses := CCList;
 email.Subject:=sSubject;
 email.Body.Clear;
 email.Body := Body;

 //SENDING
 idsmtp.Connect;
 idsmtp.Send(email);
 idsmtp.Disconnect;
 result:=True;
 except on E : Exception do
   begin
     Writeln(e.Message);
     if idSMTP.connected then try idSMTP.disconnect; except end;
     result := false;
   end;
 end;
end;

sprich bei dieser Zeile "idsmtp.Username := test@yahoo.com';" springt er automatisch zu dem Exception block! Habe ich vergessen irgendwas zu initialisieren?!

Vielen Dank im Voraus.

LG
value

jfheins 26. Apr 2011 14:44

AW: idsmtp
 
Ja. Ein Obekt muss erstellt werden, bevor man es benutzen kann.

Vor das try gehört ein
Delphi-Quellcode:
IdSMTP := TIdSMTP.Create();

value is NULL 26. Apr 2011 14:48

AW: idsmtp
 
na perfekt! funktioniert ja ;) Danke!

ein Problem habe ich noch: beim senden des Mails bekomme ich folgendes zurück:

Exception der Klasse EIdSMTPReplyError mit der Meldung "Message rejected as spam by Content Filtering"

kann ich das irgendwie umgehen?! Ich meine ich melde mich bei unserem Firmen Exchange an und versuche mir selbst ein Mail zu senden?

lg

value is NULL 26. Apr 2011 14:51

AW: idsmtp
 
auf ne andere mail adresse funzt es einwandfrei!

Exchange problem :)

DANKE

DeddyH 26. Apr 2011 14:52

AW: idsmtp
 
Ich hoffe, Du erstellst das Objekt nicht nur, sondern gibst es nach Gebrauch auch wieder frei ;)

value is NULL 26. Apr 2011 15:11

AW: idsmtp
 
idsmtp.free ist die lösung ;)

DeddyH 26. Apr 2011 15:26

AW: idsmtp
 
Genau, und das zweckmäßigerweise in einem finally-Abschnitt.

value is NULL 27. Apr 2011 08:07

AW: idsmtp
 
so muss das sein :)

danke nochmal!


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz