我正在使用這段代碼從delphi indy發送測試消息。 我有一個TidSMTP,TIdMessage和IdSSLIOHandlerSocketOpenSSL;Delphi Indy 10 Smtp錯誤「目前無法進行身份驗證」
在belowe代碼,如果我將它設置爲使用Gmail的使用SSL它工作正常,但只要我跟我的cPanel郵件服務器detials代替我的服務器的詳細信息這是行不通的錯誤:
" unable to authenticate at present".
我使用了我將用於在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 := '[email protected]';
// Password := 'pass';
// Host := 'smtp.gmail.com';
// IOHandler := IdSSLIOHandlerSocketOpenSSL;
// Port := 587;
UserName := '[email protected]';
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 := '[email protected]';
IdMsg.Subject := 'test';
IdMsg.From.Address := '[email protected]';
IdMsg.From.Name := 'john';
Connect;
Send(IdMsg);
Disconnect;
finally
Free;
end;
finally
IdMsg.free;
end;
showmessage('done');
end;
任何幫助將被處理。
因此您與之通信的服務器是交換服務器?所以問題是建立到Exchange的SSL連接?當您使用Mozilla Thunderbird電子郵件客戶端進行嘗試時它工作嗎?如果它不起作用,那麼爲什麼你要編寫一些可能未被配置爲在服務器端正常工作的代碼? – 2012-02-16 14:12:28
嘿沃倫P.感謝您的回覆。服務器不是交換服務器。我的假設是,如果我可以發送來自Microsoft Office 2007的郵件,我應該可以用我的delphi代碼做同樣的事情。我希望我錯過了我的代碼或組件屬性。 – Overklog 2012-02-16 15:24:46
那麼,在Exchange的其他一些電子郵件程序中嘗試一下,然後找出你需要的認證設置,這可能會告訴你該怎麼做。 TLS等 – 2012-02-16 16:32:32