delphi - Indy IMAP 在点处切断消息

标签 delphi imap indy

我正在使用 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/

相关文章:

Delphi 7.0和内存泄漏?

Delphi REST API 帖子示例

delphi - 如何在 Indy (Delphi 10.3 Rio) 中修复 'Access violation at address 00660938 in module Project1.exe. Read of address 00000150.'

c++ - 通过 Indy UDP 正确发送和接收结构

delphi - 断开连接时发生 IdHTTP 访问冲突

delphi - 为什么只有一个电子邮件地址不正确时 IdSMTP.Send 会失败?

c# - 在多线程环境中从 C# 调用 Delphi DLL 时发生访问冲突

authentication - 无法登录 SMTP 服务器 Postfix/Imap Courier/Plesk

java - 将 com.sun.mail.imap.IMAPMessage 转换为字符串

c# imap/pop3 邮件服务器