【问题标题】:Send e-mail to gmail with INDY - Delphi xe7使用 INDY 向 gmail 发送电子邮件 - Delphi xe7
【发布时间】:2014-12-18 11:18:59
【问题描述】:
IdMessage1.Clear;
IdSSLIOHandlerSocketOpenSSL1 := TIdSSLIOHandlersocketopenSSL.Create(nil);

IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method      := sslvTLSv1;
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode        := sslmUnassigned;
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.VerifyMode  := [];
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.VerifyDepth := 0;

IdSSLIOHandlerSocketOpenSSL1.Host :=  'smtp.gmail.com';
IdSSLIOHandlerSocketOpenSSL1.Port := 587;
IdSMTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL1;
IdSMTP1.UseTLS := utUseExplicitTLS;
IdMessage1.Body.Append('h');
IdMessage1.From.Name := '******';
IdMessage1.From.Address :=  '****';
IdMessage1.Recipients.EMailAddresses :='*****';
IdMessage1.Subject := 'POWIADOMIENIE';
IdSMTP1.UserName := '*******';
IdSMTP1.Password  := '*******';
IdSMTP1.Host :='smtp.gmail.com';

IdSMTP1.Port := 587 ;

//IdSMTP1.AuthType := satDefault;
// IdSMTP1.Authenticate;
IdSMTP1.Connect;
IdSMTP1.Send(IdMessage1);
IdSMTP1.Disconnect;

//idSMTP1.Authenticate;
end;

您好,正在尝试使用 INDY 和 Delphi XE7 向 gmail 发送电子邮件。不幸的是,我得到了错误 “SSL 在此服务器上不可用” 来自 Wireshark 的屏幕

【问题讨论】:

  • 您是否尝试为 3rdparty 应用启用对您的 gmail 帐户的访问权限? support.google.com/accounts/answer/3466521
  • 程序是否有连接所需的DLL? libeay32.dll、libssl32.dll、ssleay32.dll
  • 收到STARTTLS 回复后,您的 SMTP 连接将立即断开。这意味着 SSL/TLS 握手失败,或者在握手期间引发了异常。 TIdSMTP 在这些情况下关闭套接字。
  • 当然 WireShark 能够以文本形式获取错误消息,您可以将其复制/粘贴到您的帖子中,而不是使用难以辨认的图形,这对于那些从移动设备阅读或在公司代理后面阅读的人来说是无用的?仅在绝对必要时才应使用图形,因为没有其他方法可以清楚地描述问题。它们不需要包含文本错误消息。请考虑一下。谢谢。
  • 我为opensll更改了dll文件,现在一切正常。

标签: delphi gmail wireshark indy


【解决方案1】:

将 libeay32.dll 和 ssleay32.dll 更改为当前版本即可解决问题!

【讨论】:

    猜你喜欢
    • 2015-10-24
    • 1970-01-01
    • 2012-04-08
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多