我正在使用 Indy 组件版本 10.5.7 的 Delphi XE 下使用 Indy TIdIMAP4 组件的 UIDRetrieve()
函数从 Exchange 服务器接收电子邮件。
这通常工作得很好,但有时消息会在一个点后跟一个换行符处被切断。当点恰好位于第 76 列时会发生这种情况。
示例:
我调用 IMAPConnection.UIDRetrieve(1, Email);
,电子邮件 1 具有以下正文:
The message's text will be cut off at the dot at column 76, so exactly here.
This text won't be accessible via TIdMessage.
当我调用 Email.Body.Text
时,我收到的是这样的:
The message's text will be cut off at the dot at column 76, so exactly here
因此第二句话在Email
中不可用。
当我通过 telnet 访问消息正文时,它看起来像这样:
The message's text will be cut off at the dot at column 76, so exactly here=
.
This text won't be accessible via TIdMessage.
当我有一条多部分消息并通过 TIdText(MsgPart).Body.Text
访问消息部分正文时,也会发生这种情况。在这种情况下,也不会检索任何消息附件。
是否有任何我必须设置的属性或必须在 IMAP 连接或消息对象上调用的函数以避免这种情况?
塞巴斯蒂安
最佳答案
您的 Indy 版本已过时。你需要升级。这个问题早在 2012 年 12 月的 SVN rev 4883 中就已在 TIdIMAP4
中得到解决。Indy 的 SVN 中的当前版本是 10.6.0 rev 5022。
关于delphi - Indy IMAP 在点处切断消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17670532/