Delphi Indy 10 SMTP -Fehler "Derzeit kann man sich nicht authentifizieren"
Frage
Ich verwende diesen Code, um eine Testnachricht von Delphi Indy zu mailen. Ich habe eine Tidsmtp-, TidMessage- und IDSSLIOHandlersSocketopensl;
Wenn ich ihn im folgenden Code eingerichtet habe, um Google Mail mit SSL zu verwenden, funktioniert es einwandfrei, aber sobald ich meine Details der Server durch meine CPanel Mail -Server -Detials ersetze, funktioniert es kein Fehler:
"derzeit nicht authentifizieren".
Ich habe die gleichen Details verwendet, mit denen ich mein Konto in Outlook 2007 einrichten würde. Hier ist der Code
IDSSLIOHandlersSocketOpenSSL -Details.
method := sslvsslv3
mode := sslmUnassigned
//rest default values
procedure Tfrmnotification.btnSendClick(Sender: TObject);
var
IdMsg : TIdMessage;
begin
begin
IdMsg := TIdMessage.Create(nil);
try
with TIdSMTP.Create(nil) do
try
// UserName := 'something@gmail.com';
// Password := 'pass';
// Host := 'smtp.gmail.com';
// IOHandler := IdSSLIOHandlerSocketOpenSSL;
// Port := 587;
UserName := 'something@sasra.co.za';
Password := 'password';
Host := 'outgoing server detials';// same as outlooks
IOHandler := IdSSLIOHandlerSocketOpenSSL;
Port := 465;// this is correct port
UseTLS:= utUseExplicitTLS;
IdMsg.Body.Add('test');
IdMsg.Recipients.emailAddresses := 'something@gmail.com';
IdMsg.Subject := 'test';
IdMsg.From.Address := 'something@sasra.co.za';
IdMsg.From.Name := 'john';
Connect;
Send(IdMsg);
Disconnect;
finally
Free;
end;
finally
IdMsg.free;
end;
showmessage('done');
end;
Jede Hilfe würde Apprikation sein.
Lösung
Port 465 wird für SMTP über implizite SSL verwendet. Sie haben USETLs auf utusexplicittls gesetzt. Der korrekte Wert sollte (höchstwahrscheinlich) utusesimplicittls sein.