3

我正在使用这段代码从 delphi indy 发送测试消息。我有一个 TidSMTP、TIdMessage 和 IdSSLIOHandlerSocketOpenSSL;

在下面的代码中,如果我将其设置为使用带有 ssl 的 gmail,它可以正常工作,但是一旦我用我的 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;

任何帮助都会被应用。

4

1 回答 1

3

端口 465 用于基于隐式 SSL 的 SMTP。您已将 UseTLS 设置为 utUseExplicitTLS。正确的值应该(很可能)是 utUseImplicitTLS。

于 2012-02-16T15:39:26.693 回答