使用Delphi 6我使用以下行使用IMAP将电子邮件附加到已发送的文件夹:
if IMAPClient.Connected then begin
IMAPClient.AppendMsg(EMAIL_SENT_FOLDER, TheMessage, TheMessage.Headers, [mfSeen]);
end;
如果电子邮件中有附件(如PDF),则只保存正文文本即可。发件人,收件人和受试者也按预期正常。
在Delphi XE2中使用相同的代码行,随附的Indy 10以及带有PDF附件的电子邮件会在发送的文件夹中收到一封电子邮件,其中没有主题,没有发件人,没有收件人和电子邮件body是base64编码的乱码。
这是MIME格式的多部分邮件
- IstrI1aZj8jaD7S1JQXJK8dreduqQL = _Kv Content-Type:text / plain Content-Transfer-Encoding:quoted-printable 内容处理:内联
测试带附件的电子邮件正文
- IstrI1aZj8jaD7S1JQXJK8dreduqQL = _Kv 内容类型:application / pdf; NAME = “87122F343A2A49E48B22BD24376524FC.pdf” 内容传输编码:base64 内容 - 处理:附件; 文件名= “87122F343A2A49E48B22BD24376524FC.pdf”
JVBERi0xLjQNCiXi48 / TDQoxMSAwIG9iag0KPDwNCi9UeXBlL0Fubm90L0JvcmRlciBbXS9IL0kv - 删除了64个东西 -
编辑 - 实际上,我附加到已发送文件夹的任何电子邮件都没有主题,发件人或收件人。如果没有附件,身体大部分都可以,但身体后面有两行错误。
电子邮件正文测试
此处的真正问题是使用IMAP在发送的文件夹中附加的任何电子邮件中缺少发件人,主题或收件人。
在我看来,我需要做一些与新的Indy组件不同的东西,但我似乎无法弄清楚我需要做些什么。
感谢任何建议。
干杯! TJ
答案 0 :(得分:1)
将“Message.Headers”更改为“Message.LastGeneratedHeaders”。
主题,收件人将在那里。您的附件仍将在Base64中。我不知道解决这个问题。