【发布时间】:2019-10-15 05:15:09
【问题描述】:
我尝试在 C++ Builder XE 上使用 Indy 10.5.7 发送电子邮件,但我收到 Host not found 错误。我添加了 TIdSMTP、TIdSSLIOHandlerSocketOpenSSL 和 TIdMessage 组件。我将主机设置为 smtp.office365.com,端口设置为 587,UseTLS 设置为 utUseExplicitTLS。用户名和密码是为我需要连接的帐户的电子邮件地址设置的。
我正在尝试使用以下方式发送电子邮件:
IdMessage1->From->Name = Name->Text;
IdMessage1->From->Address = EmailAddress->Text;
IdMessage1->Body = Msg->Lines;
try
{
IdSMTP1->Connect(1000);
try
{
IdSMTP1->Send(IdMessage1);
}
__finally
{
IdSMTP1->Disconnect();
}
}
catch (const Exception &E)
{
MessageBox(NULL, E.Message.c_str(), L"Error", MB_OK | MB_ICONERROR);
}
【问题讨论】:
-
我尝试升级,但由于我的 c++ builder 版本是 starter,我无法编译。我可以使用“mjfreelancing.com/…”上的预构建版本来升级 Indy 吗?
-
我没有使用入门版,您在编译时遇到什么问题?看起来 MJ 的预编译二进制文件不是最新的,更不用说过去几年支持现代 IDE 版本了。
-
它说'这个版本的产品不支持命令行编译'。
-
在这种情况下,要更新 Indy,您可能必须将 Indy 的源文件直接添加到您的项目中。或者,为 Indy 创建自己的 C++Builder 项目文件并在 IDE 中编译它。 Indy 多年前就停止提供本地 C++Builder 项目文件,因为 Delphi 项目文件可以在 C++Builder 的命令行上编译。 Indy 没有考虑到入门版中缺少命令行编译(事实上,直到现在我才意识到这个限制)。
-
我将源文件复制到我的项目中并编译了我的项目。我仍然收到同样的错误,你知道这可能是什么原因吗,其他所有东西都可以连接到互联网。
标签: c++builder indy