代碼在Windows 8上停止工作。 它在Windows7, Windows XP(Service Pack 3) - 代碼工作。 如果Windows兼容模式爲Windows 7,則代碼無法工作。 我以管理員身份運行應用程序。已嘗試關閉防病毒和防火牆。我可以使用另一個smtp客戶端發送具有相同參數的電子郵件,例如.Net SmtpClient。該問題在不同的Windows 8計算機(家庭,辦公室)上重現。 我創建了簡單的測試應用程序。代碼是在Delphi XE,Indy 10.5.7上編寫的,OpenSSL 1.0.1.3 dll放在test.exe文件夾中。Indy10 + OpenSSL:發送電子郵件代碼在Windows 8上停止工作
任何想法?
代碼:
SSLHandler.MaxLineAction := maException;
SSLHandler.SSLOptions.Method := sslvTLSv1;
SSLHandler.SSLOptions.Mode := sslmUnassigned;
SSLHandler.SSLOptions.VerifyMode := [];
SSLHandler.SSLOptions.VerifyDepth := 0;
SSLHandler.OnStatusInfo := IdSSLIOHandlerSocketOpenSSL1StatusInfo;
SMTP.IOHandler := SSLHandler;
SMTP.Host := 'smtp.gmail.com';
SMTP.Port := 587;
SMTP.UseTLS := utUseExplicitTLS;
SMTP.Username := FromAddress;
SMTP.Password := AuthPassword;
Email.From.Address := FromAddress;
Email.Recipients.EmailAddresses := ToAddress;
Email.Subject := Subject;
Email.Body.Text := Body;
SMTP.Connect;
SMTP.Send(Email);
SMTP.Disconnect;
輸出:
SSL狀態: 「前/連接初始化」
SSL狀態: 「前/連接初始化」
SSL狀態: 「SSLv3寫客戶端你好A」
SSL狀態:「SSLv3讀服務器問候A」
EIdSocketError消息'套接字錯誤#10060連接超時。'
這看起來與INDY無關,可能是防火牆或防病毒相關問題。你能建立一個連接到其他程序的同一個服務器/端口,例如,telnet嗎? – jachguate
不要以爲它是防火牆或防病毒軟件。我已經嘗試關閉防病毒和防火牆。是的,我可以與其他程序建立到同一服務器/端口的連接,例如telnet。在Windows兼容模式下啓動應用程序時需要注意:Windows XP(Service Pack 3)在同一臺計算機上,代碼可以工作。 – user2051551