我正在使用Delphi 2006在个人使用的应用程序中创建和发送带有附件的电子邮件.我使用TIdSMTP实例发送消息,然后将副本放入具有TIdIMAP4实例的特定IMAP文件夹中.这与使用BDS2006一起分发的Indy 10版本非常吻合,但有一个例外:电子邮件标题中的时间始终不正确.
如果可以的话,我决定解决这个问题,在寻找解决方案之后,获取最新的Indy 10快照并使用它是最合理的.
这会将正确的时间放入电子邮件标题中,但是会出现一个新问题.现在,添加到IMAP文件夹的邮件标题中的边界字符串与邮件正文中的边界字符串不同!(请注意,通过SMTP发送的邮件是正确的.)
这是来自Indy 10旧版本的相关标题信息:
Content-Type: multipart/mixed; boundary="XNlC6OyS4QSiHY2U=_jsXyps6TR34pFNsh"
MIME-Version: 1.0
Date: Tue, 22 Nov 2011 09:11:58 +0000
A test of the BDS2006-bundled version of Indy
--XNlC6OyS4QSiHY2U=_jsXyps6TR34pFNsh
Content-Type: application/octet-stream;
name="20111122.xls"
Run Code Online (Sandbox Code Playgroud)
这是来自Indy 10.5.8(我昨天安装的快照10_4702)的相同标题信息:
Content-Type: multipart/mixed; boundary="CDbEncbFvL7RZdOJ3DOIRoRBs=_nBsbZms"
MIME-Version: 1.0
Date: Tue, 22 Nov 2011 07:33:46 -0600
investigating more deeply, why does the boundary indicator change?
--h=_WzGWJei29fng7SqdPpDh1nkJxJZhiGc
Content-Type: application/octet-stream;
name="20111122.xls"
Run Code Online (Sandbox Code Playgroud)
时间戳是固定的,但现在边界字符串不正确.结果是,消息中似乎什么也没有添加到我的IMAP文件夹中.
以下是创建电子邮件和附件,发送它并将副本放入IMAP文件夹的相关代码:
FTheMsg.Date := Now; // FTheMsg is a component dropped onto the form
FTheMsg.Recipients.EMailAddresses := edMailTo.Text;
FTheMsg.ClearBody;
FTheMsg.Subject := 'Glucose …Run Code Online (Sandbox Code Playgroud)