私は、次のコードを含む Delphi 2006 BDS アプリケーションを使用して、Outlook メールボックスを反復し、次にメールボックス内の受信トレイと送信済みアイテムを反復処理しています。
try
nameSpace := outlook.GetNameSpace('MAPI');
// load the mailboxes
mailbox := NameSpace.Folders;
for i := 1 to mailbox.Count do
if Pos('MAILBOX', UpperCase(mailbox.Item[i].Name)) > 0 then
begin
rootNode := trvwOutlookFolders.Items.AddChildObject(nil, mailbox.Item[i].Name, nil);
for j := 1 to mailbox.Item[i].Folders.Count do
if (Pos('INBOX', UpperCase(mailbox.Item[i].Folders[j].Name)) > 0) or
(Pos('SENT ITEMS', UpperCase(mailbox.Item[i].Folders[j].Name)) > 0) then
begin
// do processing
end;
end;
finally
outlook := Unassigned;
end;
end;
このコードは Outlook 2007 では正常に動作しますが、2010 では動作しません。これは、メールボックスに「Mailbox」という単語が含まれていないためです。したがって、私は、Outlook 内からメールボックス (パブリック フォルダーなどではない) だけを抽出し、そのサブシーケンスの受信トレイと送信済みアイテム フォルダーを抽出する別の方法を求めています。何か案は?