Delphi Indy 10 Smtp Error "Невозможно подтвердить подлинность в настоящее время" - PullRequest
3 голосов
/ 16 февраля 2012

Я использую этот кусок кода для отправки тестового сообщения от delphi indy. У меня есть TidSMTP, TIdMessage и IdSSLIOHandlerSocketOpenSSL;

В приведенном ниже коде, если я настроил его на использование gmail с ssl, он работает нормально, но как только я заменяю свои данные сервера на данные моего почтового сервера cpanel, он не работает:

"не может подтвердить подлинность в настоящее время".

Я использовал те же данные, которые я использовал бы для настройки своей учетной записи в outlook 2007. Вот код

IdSSLIOHandlerSocketOpenSSL подробности.

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;

Любая помощь будет оценена.

1 Ответ

3 голосов
/ 16 февраля 2012

Порт 465 используется для SMTP через неявный SSL.Вы установили UseTLS в utUseExplicitTLS.Правильное значение (скорее всего) должно быть utUseImplicitTLS.

...