使用 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/