さて、私は問題に遭遇しました。
私はC#を使用してMS Outlook APIを使用して、受信した電子メールからいくつかのExcelベースのレポートを生成しています。
さて、最初にこれを始めたとき、フォルダ内の電子メールの数が少し少なかったので問題ありませんでした。数日後、その数は数千になりました。
Application app = null;
_NameSpace ns = null;
MailItem item = null;
MAPIFolder inboxFolder = null;
MAPIFolder subFolder = null;
DateTime MyDateTime;
MyDateTime = new DateTime();
MyDateTime = DateTime.ParseExact(dateFilter, "yyyy-MM-dd HH:mm tt", null);
try
{
app = new Application();
ns = app.GetNamespace("MAPI");
ns.Logon(null, null, false, false);
inboxFolder = ns.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
subFolder = inboxFolder.Folders["Alerts"];
for (int i = 1; i <= subFolder.Items.Count; i++)
{
item = (Microsoft.Office.Interop.Outlook.MailItem)subFolder.Items[i];
string subject = item.Subject;
DateTime sent = item.SentOn;
if (item.SentOn > MyDateTime && item.SentOn < MyDateTime.AddDays(1))
{//Do some logging
}}
上記のコードの問題は、最後に受信した電子メールから検索を開始することです。これにより、「フィルター」に到達するまでの時間が長くなります。
もしあれば、コードを改善するための提案が必要です。
私を読んでくれてありがとう。