使用 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编码乱码。
这是一条 MIME 格式的多部分消息
--IstrI1aZj8jaD7S1JQXJK8dreduqQL=_Kv Content-Type: text/plain Content-Transfer-Encoding:quoted-printable Content-Disposition: inline
测试带有附件的电子邮件正文
--IstrI1aZj8jaD7S1JQXJK8dreduqQL=_Kv 内容类型:应用程序/pdf;name="87122F343A2A49E48B22BD24376524FC.pdf" 内容传输编码:base64 内容处置:附件;文件名="87122F343A2A49E48B22BD24376524FC.pdf"
JVBERi0xLjQNCiXi48/TDQoxMSAwIG9iag0KPDwNCi9UeXBlL0Fubm90L0JvcmRlciBbXS9IL0kv - base 64 的东西被移除 -
编辑 - 实际上,我附加到已发送文件夹的任何电子邮件都没有主题、发件人或收件人。如果没有附件,身体基本没问题,但身体后两行有一个错误的时期。
电子邮件正文测试
.
真正的问题是使用 IMAP 附加到已发送文件夹的任何电子邮件中都缺少发件人、主题或收件人。
在我看来,我需要对较新的 Indy 组件做一些不同的事情,但我似乎无法弄清楚我到底需要做什么。
任何建议表示赞赏。
干杯! TJ