delphi - 使用 Indy IMAP 和 Delphi XE2 附加的电子邮件缺少发件人、主题、收件人

标签 delphi delphi-xe2 imap indy

使用 Delphi 6,我使用以下行通过 IMAP 将电子邮件附加到已发送文件夹:

if IMAPClient.Connected then begin
  IMAPClient.AppendMsg(EMAIL_SENT_FOLDER, TheMessage, TheMessage.Headers, [mfSeen]);
end;

如果电子邮件包含 PDF 等附件,则只会保存正文,这没问题。发件人、收件人和主题也如预期正常。

在 Delphi XE2、Indy 10 中使用同一行代码,以及带有 PDF 等附件的电子邮件,我会在发送文件夹中收到一封没有主题、没有发件人、没有收件人和电子邮件的电子邮件正文是 base64 编码的乱码。

This is a multi-part message in MIME format

--IstrI1aZj8jaD7S1JQXJK8dreduqQL=_Kv Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Content-Disposition: inline

test email body with attachment

--IstrI1aZj8jaD7S1JQXJK8dreduqQL=_Kv Content-Type: application/pdf; name="87122F343A2A49E48B22BD24376524FC.pdf" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="87122F343A2A49E48B22BD24376524FC.pdf"

JVBERi0xLjQNCiXi48/TDQoxMSAwIG9iag0KPDwNCi9UeXBlL0Fubm90L0JvcmRlciBbXS9IL0kv - base 64 stuff removed -

编辑 - 实际上,我附加到已发送文件夹的任何电子邮件都没有主题、发件人或收件人。如果没有附件,正文大部分都可以,但正文后两行有一个错误句点。

email body test

.

这里真正的问题是使用 IMAP 附加到已发送文件夹的任何电子邮件中都缺少发件人、主题或收件人。

在我看来,我需要对新的 Indy 组件做一些不同的事情,但我似乎不知道我到底需要做什么。

如有任何建议,我们将不胜感激。

干杯! TJ

最佳答案

将“TheMessage.Headers”更改为“TheMessage.LastGeneratedHeaders”。

主题和收件人都会在那里。您的附件仍将采用 Base64 格式。我不知道解决办法。

关于delphi - 使用 Indy IMAP 和 Delphi XE2 附加的电子邮件缺少发件人、主题、收件人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13649698/

相关文章:

delphi - fsStayOnTop 表单隐藏的模态表单

delphi - 为自定义组件创建样式的正确方法

windows - 为什么 CreateProcess 给出错误 193(%1 不是有效的 Win32 应用程序)

php - 使用代码通过 IMAP 将标签附加到 Gmail 中的邮件

ruby - Imap 文件夹只返回一部分电子邮件

c# - Outlook HTMLBody 仅返回有限的格式

listview - TListItem.Checked在Assign()之后将自身切换为True

delphi - Delphi XE2中的RichEdit控件在某些样式下不会显示字体颜色

php - imap_open() 无法使用 POP3 协议(protocol)打开流

delphi - 如何根据包含空格的字段名对 ADO 表进行排序?