メールを件名でフィルター(複数条件)

初歩的な質問かもしれませんがご相談させてください。
「GetOutlookMailMessage」アクティビティのフィルター設定に関して、
件名にあるキーワードを含むもののみ抽出するようにしており、
フィルターに以下のような条件文を設定しています。

“@SQL=urn:schemas:httpmail:subject like `%” + 検索キーワード + “%'”

この条件に、「あるキーワードを含まない」という条件を追加したいと思っています。
単純に、上記条件にandで繋いでnot likeの文を追加すればできるかと思ったのですが、
下記だと構文エラーとなってしまいました。

“@SQL=(urn:schemas:httpmail:subject like %" + 検索キーワード + "%' and urn:schemas:httpmail:subject not like %” + 除外キーワード + “%')”

例えば、受信トレイに以下のような件名のメールが存在したとすると、
検索キーワードに"【重要】“、除外キーワードに"お知らせ"を設定して、
「メール1」のみ取得するようにしたいです。
(”【重要】"が含まれるメールは取得したいが、"お知らせ"が含まれると取得しない)

・メール1 「【重要】ご依頼」
・メール2「【重要】お知らせ」

フィルターで複数条件を設定するのではなく、
「GetOutlookMailMessage」アクティビティで取得したListで
Selectする方法も考えたのですが、記述方法がわかりませんでした。

どなたかご教授頂ければ幸いです。

こちらは以下になるかと思います。

mails = mails.Where(Function(m) m.Subject.Contains("検索キーワード") AndAlso (not m.Subject.Contains("除外キーワード"))).ToList()

もしあらかじめ検索キーワードでフィルターしたリストでしたら単に

mails = mails.Where(Function(m) not m.Subject.Contains("除外キーワード")).ToList()

になるかと思います。

1 Like

ご回答ありがとうございます。
教えて頂いた方法で無事処理できました!

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.