Hallo,
ich benutze die Indykomponenten IDSmtp und IDMessage zum versenden von Mails - das heisst ich versuche es...
Beim Aufruf von
IdSMTP1.Send(IdMessage1);
erscheint eine Fehlermeldung "5.5.4 EIDProtocollReplyError " und ich finde keinen Hinweis was den fehler verursacht.
Hier mal der Codeschnipsel:
procedure TForm1.QSBtnClick(Sender: TObject);
var Adresse, Absendername, Subj, BodyText: string;
begin
{ Mauszeiger auf Eieruhr stellen wir tun schliesslich Etwas...}
screen.cursor := crHourGlass;
{ Mailbetreff }
subj := 'Eintrag Fehlerliste Nummer: ' + BugTBLErrorNumber.asstring;
{Mailtext }
BodyText := 'Der Fehler mit der Nummer: ' + BugTBLErrorNumber.asstring
+ #13 + #10 + ' wurde vom Entwickler: ' + BugTBLSolvedby.AsString + ' bereinigt.'
+ #13 + #10 + 'Nachstehender Kommentar wurde als Änderungsbeschreibung erfasst:'
+ #13 + #10
+ #10 + #13 + BugTBLSolution.AsString;
{Gibts den User ???}
if not usertbl.FindKey([User]) then
begin
Showmessage(' Der User ' + user + ' existiert nicht!');
screen.cursor := crdefault;
exit;
end else
{wenn ja, denn ... ..}
{Übergabearameter zusammensetzen }
with IdMessage1 do
begin
From.Address := usertblEmail.asstring;
debugfile('From.Adress: ' + usertblUser_name.AsString);
From.Name := usertblUser_name.AsString;
debugfile('From.NAME ' + usertblUser_name.asstring);
Subject := subj;
debugfile('Subjekt: ' + subj);
Sender.Address := usertblEmail.asstring;
debugfile('Sender.Adress: ' + usertblEmail.asstring);
Sender.Name := usertblUser_name.asstring;
debugfile('Sender.NAME: ' + usertbluser_name.asstring);
ReplyTo[0].Name := sender.name;
ReplyTo[0].Address := Sender.address;
{ Alle QS Mitarbeiter als Empfänger setzen }
SetzeAdressat;
Body.Add(BodyText);
{ SMTP Connect und Email absetzen }
with IdSMTP1 do
begin
Username := '';
Password := '';
Port := MailTBLPort.AsInteger;
try
begin
Connect;
IdSMTP1.Send(IdMessage1);
Disconnect;
end
except
{ Email senden fehlgeschlagen }
begin
MessageDlg('Die Mail konnte nicht versandt werden, vermutlich gibt es'
+ #13 + #10 + 'keine Verbindung zum Mailserver. Stellen Sie die Verbindung '
+ #13 + #10 + 'her und versuchen Sie nochmals die Email zu versenden.', mtWarning, [mbOK], 0);
screen.cursor := crdefault;
exit;
end;
{Email erfolgreich abgesetzt}
MessageDlg(' Die Email wurde '
+ #13 + #10 + 'erfolgreich versandt!', mtInformation, [mbOK], 0);
end;
screen.cursor := crdefault;
end;
end;
screen.cursor := crdefault;
end;
und: procedure TForm1.SetzeAdressat;
var I: Integer;
begin
{ Alle QS Mitarbeiter aus USERS auswählen}
AdressatQry.close;
AdressatQry.SQL.Clear;
AdressatQry.SQL.Add('select * from users where qs = true');
AdressatQry.Open;
{ Jeden QS Mitarbeiter in die Empfängerliste eintragen }
for I := 0 to AdressatQry.RecordCount - 1 do
begin
IdMessage1.Recipients.Add;
IdMessage1.Recipients[I].Name := AdressatQry.FieldByName('USER_NAME').AsString;
IdMessage1.Recipients[I].Address := AdressatQry.FieldByName('Email').AsString;
AdressatQry.Next;
end;
end;
Kann mir jemand sagen WAS hier diesen Fehler verursacht ???
Heiko
ich benutze die Indykomponenten IDSmtp und IDMessage zum versenden von Mails - das heisst ich versuche es...
Beim Aufruf von
IdSMTP1.Send(IdMessage1);
erscheint eine Fehlermeldung "5.5.4 EIDProtocollReplyError " und ich finde keinen Hinweis was den fehler verursacht.
Hier mal der Codeschnipsel:
procedure TForm1.QSBtnClick(Sender: TObject);
var Adresse, Absendername, Subj, BodyText: string;
begin
{ Mauszeiger auf Eieruhr stellen wir tun schliesslich Etwas...}
screen.cursor := crHourGlass;
{ Mailbetreff }
subj := 'Eintrag Fehlerliste Nummer: ' + BugTBLErrorNumber.asstring;
{Mailtext }
BodyText := 'Der Fehler mit der Nummer: ' + BugTBLErrorNumber.asstring
+ #13 + #10 + ' wurde vom Entwickler: ' + BugTBLSolvedby.AsString + ' bereinigt.'
+ #13 + #10 + 'Nachstehender Kommentar wurde als Änderungsbeschreibung erfasst:'
+ #13 + #10
+ #10 + #13 + BugTBLSolution.AsString;
{Gibts den User ???}
if not usertbl.FindKey([User]) then
begin
Showmessage(' Der User ' + user + ' existiert nicht!');
screen.cursor := crdefault;
exit;
end else
{wenn ja, denn ... ..}
{Übergabearameter zusammensetzen }
with IdMessage1 do
begin
From.Address := usertblEmail.asstring;
debugfile('From.Adress: ' + usertblUser_name.AsString);
From.Name := usertblUser_name.AsString;
debugfile('From.NAME ' + usertblUser_name.asstring);
Subject := subj;
debugfile('Subjekt: ' + subj);
Sender.Address := usertblEmail.asstring;
debugfile('Sender.Adress: ' + usertblEmail.asstring);
Sender.Name := usertblUser_name.asstring;
debugfile('Sender.NAME: ' + usertbluser_name.asstring);
ReplyTo[0].Name := sender.name;
ReplyTo[0].Address := Sender.address;
{ Alle QS Mitarbeiter als Empfänger setzen }
SetzeAdressat;
Body.Add(BodyText);
{ SMTP Connect und Email absetzen }
with IdSMTP1 do
begin
Username := '';
Password := '';
Port := MailTBLPort.AsInteger;
try
begin
Connect;
IdSMTP1.Send(IdMessage1);
Disconnect;
end
except
{ Email senden fehlgeschlagen }
begin
MessageDlg('Die Mail konnte nicht versandt werden, vermutlich gibt es'
+ #13 + #10 + 'keine Verbindung zum Mailserver. Stellen Sie die Verbindung '
+ #13 + #10 + 'her und versuchen Sie nochmals die Email zu versenden.', mtWarning, [mbOK], 0);
screen.cursor := crdefault;
exit;
end;
{Email erfolgreich abgesetzt}
MessageDlg(' Die Email wurde '
+ #13 + #10 + 'erfolgreich versandt!', mtInformation, [mbOK], 0);
end;
screen.cursor := crdefault;
end;
end;
screen.cursor := crdefault;
end;
und: procedure TForm1.SetzeAdressat;
var I: Integer;
begin
{ Alle QS Mitarbeiter aus USERS auswählen}
AdressatQry.close;
AdressatQry.SQL.Clear;
AdressatQry.SQL.Add('select * from users where qs = true');
AdressatQry.Open;
{ Jeden QS Mitarbeiter in die Empfängerliste eintragen }
for I := 0 to AdressatQry.RecordCount - 1 do
begin
IdMessage1.Recipients.Add;
IdMessage1.Recipients[I].Name := AdressatQry.FieldByName('USER_NAME').AsString;
IdMessage1.Recipients[I].Address := AdressatQry.FieldByName('Email').AsString;
AdressatQry.Next;
end;
end;
Kann mir jemand sagen WAS hier diesen Fehler verursacht ???
Heiko
Comment