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

时间:2012-11-30 17:03:36

标签: 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附件的电子邮件会在发送的文件夹中收到一封电子邮件,其中没有主题,没有发件人,没有收件人和电子邮件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

1 个答案:

答案 0 :(得分:1)

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

主题,收件人将在那里。您的附件仍将在Base64中。我不知道解决这个问题。