我需要从Thunderbird电子邮件客户端读取所有帐户Inbox及其所有子文件夹的电子邮件。
如何更改代码以读取每个子文件夹中的所有电子邮件?
谢谢
使用此代码(从Jedy库的示例获取),我仅从默认的InBox文件夹中读取电子邮件:
DownloadsListView.Items.Clear;
JvMail1.LogonOptions := [JvMail.loNewSession, JvMail.loDownloadMail];
JvMail1.LogOn;
try
b := JvMail1.FindFirstMail;
while b do
begin
JvMail1.ReadOptions := [roFifo, roHeaderOnly, roPeek];
JvMail1.ReadMail;
with DownloadsListView.Items.Add do
begin
Caption := JvMail1.Subject;
SubItems.Add(JvMail1.ReadedMail.RecipientName);
SubItems.Add(DateTimeToStr(JvMail1.ReadedMail.DateReceived));
end;
b := JvMail1.FindNextMail;
end;
finally
JvMail1.LogOff;
JvMail1.Clear;
DownloadsListView.BringToFront;
end;
答案 0 :(得分:2)
TJvMail
是SimpleMAPI的包装,它没有子文件夹的概念,并且只能访问配置文件的收件箱。您可能需要使用CDO或扩展MAPI才能完全访问配置文件的子文件夹,但是TJvMail
不支持该子文件夹。
Differences between CDO, Simple MAPI, and Extended MAPI
或者,使用IMAP协议(例如通过Indy的TIdIMAP4
组件)直接访问电子邮件服务器,而不是访问用户的本地电子邮件客户端。