![]() |
Authentifiziertes SMTP
Hallo zusammen
Habe ein kleines Testprogramm erstellt, das ein Mailaccount testet. Ich möchte das Programm mit authifiziertem SMTP erweitern. Ich habe nun in meinem Programm folgende Code eingebaut:
Delphi-Quellcode:
Jetzt erscheint immer die Meldung:
if chkb_Auth.Checked then
begin IdSMTP1.Authenticate; end; Connection Closes Gracefully. Der ganze Code sieht so aus:
Delphi-Quellcode:
Weiss jemand rat, wie man sich richtig Authentifiziert?
procedure Tfrm_POP3SMTPTester.btn_SendMailClick(Sender: TObject);
var m: TIdMessage; begin try if IdSMTP1.Connected then IdSMTP1.Disconnect; IdSMTP1.Port := StrToInt(edt_SMTPPort.Text); IdSMTP1.Host := edt_SMTPHost.Text; if chkb_Auth.Checked then begin IdSMTP1.Authenticate; end; IdSMTP1.Username := edt_SMTPUser.Text; IdSMTP1.Password := edt_SMTPPassWort.Text; IdSMTP1.Connect; // (4000); if IdSMTP1.Connected = True then begin m := TIdMessage.Create(self); m.From.Text := edt_from.Text; m.Recipients.Add.Text := edt_to.Text; m.Subject := 'TestMail from SMTP Checker'; m.Body.Text := 'Dieses Mail wurde zu Testzwecken versendet'; IdSMTP1.Send(m); IdSMTP1.Disconnect; showmessage('Das Mail wurde erfolgreich versendet!'); end; except on E: EIdTextInvalidCount do Writeln(E.Message); on E: EIdMessageCannotLoad do Writeln(E.Message); on E: EIdPOP3Exception do Writeln(E.Message); on E: EIdTextInvalidCount do Writeln(E.Message); on E: EIdMessageCannotLoad do Writeln(E.Message); on E: EIdDoesNotSupportAPOP do Writeln(E.Message); on E: EIdUnrecognizedReply do Writeln(E.Message); on E: EIdTLSClientException do Writeln(E.Message); on E: EIdTLSClientSSLIOHandlerRequred do Writeln(E.Message); on E: EIdTLSClientCanNotSetWhileConnected do Writeln(E.Message); on E: EIdTLSClientTLSNotAvailable do Writeln(E.Message); on E: EIdTLSClientTLSNegCmdFailed do Writeln(E.Message); on E: EIdTLSClientTLSHandShakeFailed do Writeln(E.Message); on E: EIdTLSServerException do Writeln(E.Message); on E: EIdTLSClientCanNotSetWhileActive do Writeln(E.Message); end; if IdSMTP1.Connected then IdSMTP1.Disconnect; end; Vielen Dank. |
AW: Authentifiziertes SMTP
Müsste man nicht Usernamen und Passwort setzen, bevor man sich authentifiziert?
P.S.: Nimm bitte den Vergleich auf true raus, das schmerzt in meinen Augen. [edit] P.P.S.: ![]() |
AW: Authentifiziertes SMTP
Ich denk mal da hat jemand Recht
Zitat:
|
AW: Authentifiziertes SMTP
Vielen Dank. Auch das mit dem True... :-)
Habs geändert, respektive es war schon drin, geht aber immer noch nicht:
Delphi-Quellcode:
procedure Tfrm_POP3SMTPTester.btn_SendMailClick(Sender: TObject);
var m: TIdMessage; begin try if IdSMTP1.Connected then IdSMTP1.Disconnect; IdSMTP1.Port := StrToInt(edt_SMTPPort.Text); IdSMTP1.Host := edt_SMTPHost.Text; IdSMTP1.Username := edt_SMTPUser.Text; IdSMTP1.Password := edt_SMTPPassWort.Text; if chkb_Auth.Checked then begin IdSMTP1.Authenticate; end; IdSMTP1.Connect; if IdSMTP1.Connected then begin m := TIdMessage.Create(self); m.From.Text := edt_from.Text; m.Recipients.Add.Text := edt_to.Text; m.Subject := 'TestMail from SMTP Checker'; m.Body.Text := 'Dieses Mail wurde zu Testzwecken versendet'; IdSMTP1.Send(m); IdSMTP1.Disconnect; showmessage('Das Mail wurde erfolgreich versendet!'); end; except on E: EIdTextInvalidCount do Writeln(E.Message); on E: EIdMessageCannotLoad do Writeln(E.Message); on E: EIdPOP3Exception do Writeln(E.Message); on E: EIdTextInvalidCount do Writeln(E.Message); on E: EIdMessageCannotLoad do Writeln(E.Message); on E: EIdDoesNotSupportAPOP do Writeln(E.Message); on E: EIdUnrecognizedReply do Writeln(E.Message); on E: EIdTLSClientException do Writeln(E.Message); on E: EIdTLSClientSSLIOHandlerRequred do Writeln(E.Message); on E: EIdTLSClientCanNotSetWhileConnected do Writeln(E.Message); on E: EIdTLSClientTLSNotAvailable do Writeln(E.Message); on E: EIdTLSClientTLSNegCmdFailed do Writeln(E.Message); on E: EIdTLSClientTLSHandShakeFailed do Writeln(E.Message); on E: EIdTLSServerException do Writeln(E.Message); on E: EIdTLSClientCanNotSetWhileActive do Writeln(E.Message); end; if IdSMTP1.Connected then IdSMTP1.Disconnect; end; Danke für weitere Tipps. |
AW: Authentifiziertes SMTP
Erst verbinden, dann authentifizieren (siehe auch den Link in meinem Edit).
|
AW: Authentifiziertes SMTP
Zitat:
Delphi-Quellcode:
?
procedure Tfrm_POP3SMTPTester.btn_SendMailClick(Sender: TObject);
var m: TIdMessage; begin try [ Gedöns ] except on E: Exception do WriteLn(E.Message); end; if IdSMTP1.Connected then IdSMTP1.Disconnect; end; |
AW: Authentifiziertes SMTP
Vielen Dank!!!! :-)
Funzt nun. Den letzen Input zu "warum nicht gleich...." Weil sonst nicht eine genaue Fehlermeldung ausgegeben werden würde... Habe es probiert, bei allen Fehlern würde immer die gleiche Fehlermeldung ausgegeben werden. Hier noch der Code falls jemand sich auch die Hörner abstossen muss..
Delphi-Quellcode:
procedure Tfrm_POP3SMTPTester.btn_SendMailClick(Sender: TObject);
var m: TIdMessage; begin try if IdSMTP1.Connected then IdSMTP1.Disconnect; IdSMTP1.Port := StrToInt(edt_SMTPPort.Text); IdSMTP1.Host := edt_SMTPHost.Text; IdSMTP1.Username := edt_SMTPUser.Text; IdSMTP1.Password := edt_SMTPPassWort.Text; IdSMTP1.Connect; if chkb_Auth.Checked then begin IdSMTP1.Authenticate; end; if IdSMTP1.Connected then begin m := TIdMessage.Create(self); m.From.Text := edt_from.Text; m.Recipients.Add.Text := edt_to.Text; m.Subject := 'TestMail from SMTP Checker'; m.Body.Text := 'Dieses Mail wurde zu Testzwecken versendet'; IdSMTP1.Send(m); IdSMTP1.Disconnect; showmessage('Das Mail wurde erfolgreich versendet!'); end; except on E: EIdTextInvalidCount do Writeln(E.Message); on E: EIdMessageCannotLoad do Writeln(E.Message); on E: EIdPOP3Exception do Writeln(E.Message); on E: EIdTextInvalidCount do Writeln(E.Message); on E: EIdMessageCannotLoad do Writeln(E.Message); on E: EIdDoesNotSupportAPOP do Writeln(E.Message); on E: EIdUnrecognizedReply do Writeln(E.Message); on E: EIdTLSClientException do Writeln(E.Message); on E: EIdTLSClientSSLIOHandlerRequred do Writeln(E.Message); on E: EIdTLSClientCanNotSetWhileConnected do Writeln(E.Message); on E: EIdTLSClientTLSNotAvailable do Writeln(E.Message); on E: EIdTLSClientTLSNegCmdFailed do Writeln(E.Message); on E: EIdTLSClientTLSHandShakeFailed do Writeln(E.Message); on E: EIdTLSServerException do Writeln(E.Message); on E: EIdTLSClientCanNotSetWhileActive do Writeln(E.Message); {on E: Exception do Writeln(E.Message); } end; if IdSMTP1.Connected then IdSMTP1.Disconnect; end; |
AW: Authentifiziertes SMTP
Zitat:
Wenn du mit deiner Aussage richtig liegen würdest, würde das bedeuten das Delphi in Bezug auf Exceptions eine Fehlkonstruktion ist. (ist es aber nicht!) Versuch mal:
Delphi-Quellcode:
except
on E: Exception do Writeln(E.Classname+ ' - ' + E.Message); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz