メーリングリスト経由で送信されたメールの実際の送信者で振り分けを行う検索フォルダーを作成するマクロ


コメントにて以下のご要望をいただきました。


OUTLOOK2010を使用しています。 検索フォルダ―機能を使用して、差出人毎に自動的にフォルダー分けを行っているのですが、
差出人がメーリングリストを使用して送信した場合に、振り分けたフォルダーから漏れてしまい 困っています。

なお、使用しているメーリングリストで送信されたメールを受信したメールを表示すると、送信者の情報の所に、
『XXXX@ドメイン が次の人の代理で送信しました: 送信者メールアドレス@ドメイン』のように表示されます。

また、メールヘッダを確認したところ、以下のようになっていました。
From :送信者メールアドレス@ドメイン
Sender:XXXX@ドメイン

この情報から推測すると、検索フォルダー機能は、fromではなくSenderを検索しているようです。

このようなメーリングリストのメールを検索フォルダー機能で正しく振り分ける方法は無いでしょうか?


Outlook の通常の検索フォルダーの条件で差出人を指定した場合、ご指摘の通りヘッダーの From ではなく Sender が検索対象となります。
通常の方法で From を検索対象とする検索フォルダーは作成できないのですが、マクロで作成することができます。
具体的には AdvancedSearch メソッドで高度な検索でも指定できないプロパティの検索条件を指定し、生成された Search オブジェクトの Save メソッドにより検索フォルダーとして保存します。
マクロは以下のようになります。

' ここをトリプルクリックでマクロ全体を選択できます。
Public bSearchInProgress As Boolean
'
Private Sub Application_AdvancedSearchComplete(ByVal SearchObject As Search)
    bSearchInProgress = False
End Sub
'
Public Sub CreateSearchFolderForFrom()
    Dim strFrom As String
    Dim strFilter As String
    Dim objSrch As Search
    strFrom = InputBox("差出人アドレス:")
    strFilter = "http://schemas.microsoft.com/mapi/proptag/0x0065001E like '%" & strFrom & "%'"
    Set objSrch = Application.AdvancedSearch("Inbox", strFilter, True)
    bSearchInProgress = True
    While bSearchInProgress
        DoEvents
    Wend
    objSrch.Save strFrom
End Sub

マクロの登録方法やメニューへの追加について

広告

メーリングリスト経由で送信されたメールの実際の送信者で振り分けを行う検索フォルダーを作成するマクロ」への4件のフィードバック

  1. OUTLOOK 2010で上記マクロを使用していますが、コンパイルすると以下のエラーとなってします。

    コンパイルエラー:名前が適切ではありません:Application_AdvancedSearchComplete

    • 失礼しました。
      他のマクロで、以下の定義されている個所があったためのようです。

       Private Sub Application_AdvancedSearchComplete(ByVal SearchObject As Search)

      他のマクロで定義していた上記行をコメントアウトしたところ、コンパイルは正常に完了しました。

      そこで、メーリングリストが格納されている受信トレイにフォーカスがある状態で、マクロを実行してみました。
      ”差出人アドレス:”のダイアログが表示されたので、メーリングリストで送られてきたメールの実際の送信者の
      メールアドレスを指定して実行しました。
      検索フォルダが自動で生成されるものと思っていたのですが、何の変化も有りませんでした。

      何か、使い方で問題があるのでしょうか?

  2. またまた、すみません。正常に動いていいました。

    ■ 実行結果
      OUTLOOK規定の検索フォルダー配下に、指定したメールアドレスのフォルダが作成され、
      メーリングリストのメールが格納されていました。

    ■ 正常に度指していないと勘違いした理由
     通常の検索フォルダ(メーリングリストではないメールアドレスで検索できるフォルダ)を
     お気に入りに入れて使用しており、今回の自動生成される検索フォルダもお気に入りに
     出来るものと勘違いしており、検索フォルダ配下を確認していませんでした。

    そこで、この検索機能で要望があります。

    ■要望
     要望1: 今回のマクロでは、メーリングリストを使用しないメールは検索対象としないようです。
          メーリングリストのメールとメーリングリストを使用しないメールが同一差出人の場合
          同一の検索フォルダで確認したいのですが、可能でしょうか?
          もしくは、既にある検索フォルダ名を指定して、その検索フォルダに検索結果を
          登録することは可能でしょうか?     

     要望2:今回のマクロでは、INBOX全体のメールを総なめして、該当するメールを探している
          ものと思いますが、受信した際にそのメールだけを対象に自動的に検索フォルダーに
          追加できた方が、システム負荷が少なくなるかなと思います。
          検索するメールアドレスをまとめて指定して、受信したメールの差出人指定された
          メールアドレスであれば、検索フォルダに追加するようにすることは可能でしょうか?

     要望3:生成される検索フォルダ名を指定したい。
          今回生成される検索フォルダ名はメールアドレスですが、検索フォルダをたくさん
          作っているため、メールアドレスでは判断しにくいため、検索フォルダを日本語名に
          リネームして作っています。
          要望2で検索するメールアドレス指定と合わせて検索フォルダ名を指定するような
          ことは可能でしょうか?

  3. こんばんは。
    このマクロを応用して、以下のことができませんでしょうか?Outlook2010です。

    メールビューの条件付き書式で、差出人(表示名でなくメールアドレス)で、指定した以外のドメインの場合に色をつける設定

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中