件名の文字列の受信トレイとすべてのサブフォルダを検索しようとしています。私は次のコードをオンラインで見つけましたが(https://www.add-in-express.com/creating-addins-blog/2012/05/31/outlook-search-csharp-vbnet/)、期待した結果ではないゼロの結果を返します。アドバンストサーチfor OutlookをC#でゼロの結果を返します。
私は見通しエクスプローラで結果を返し、このクエリを持って与えられた検索語の見通しで、ビュー設定でフィルタを見:私は以下のコードにしていることを接続すると、「http://schemas.microsoft.com/mapi/proptag/0x0037001f」LIKE「%のチケット%」 同様にゼロの結果が得られます。
LINQを使用してこれらのフォルダを照会すると(LINQが実際のソリューションになるには遅すぎます)、結果が得られるので、advancedsearchで構文エラーが発生していると思います。ウェブ上での使用例を見つけるのは難しいです。私は私を助けることができる誰にも感謝します。 MSDN "備考" に_Applicationとアプリケーションを使用する方法について
private Search RunAdvancedSearch(Outlook.Application OutlookApp, string wordInSubject)
https://msdn.microsoft.com/en-us/library/office/microsoft.office.interop.outlook.application.aspx
読む:
private Search RunAdvancedSearch(Outlook._Application OutlookApp, string wordInSubject)
{
string advancedSearchTag = "New Search";
string scope = "Inbox";
string filter = "\"urn:schemas:mailheader:subject\" LIKE '%"+ wordInSubject +"%'";
Outlook.Search advancedSearch = null;
Outlook.MAPIFolder folderInbox = null;
Outlook.MAPIFolder folderSentMail = null;
Outlook.NameSpace ns = null;
try
{
ns = OutlookApp.GetNamespace("MAPI");
folderInbox = ns.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
folderSentMail = ns.GetDefaultFolder(
Outlook.OlDefaultFolders.olFolderSentMail);
scope = "\'" + folderInbox.FolderPath +
"\',\'" + folderSentMail.FolderPath + "\'";
advancedSearch = OutlookApp.AdvancedSearch(
scope, filter, true, advancedSearchTag);
System.Diagnostics.Debug.WriteLine(advancedSearch.Results.Count);
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message, "An exception is thrown!");
}
finally
{
if (advancedSearch != null) Marshal.ReleaseComObject(advancedSearch);
if (folderSentMail != null) Marshal.ReleaseComObject(folderSentMail);
if (folderInbox != null) Marshal.ReleaseComObject(folderInbox);
if (ns != null) Marshal.ReleaseComObject(ns);
}
return advancedSearch;
}
.Applicationから.Applicationに変更しましたが、結果は同じです。おそらく他のアイデアはありますか? – zenijos10