IMAP4 でメッセージを受信したときに本文に含まれる文字列を条件とした自動仕分けルールを実行させる方法


Outlook 2007 で IMAP4 によりメッセージを受信している場合、通常では本文に含まれる文字列を条件とした自動仕分けのルールが実行されません。これは送受信設定の IMAP4 のフォルダの設定で [添付ファイルを含む完全なアイテムをダウンロード] を選択していても変わりません。

この現象が発生する原因は、IMAP4 の受信が以下のようなロジックで行われるためです。

  1. IMAP4 サーバーが新着メッセージの通知を Outlook 2007 に送信します。
  2. Outlook 2007 が IMAP4 サーバーから新着メッセージのヘッダを受信します。
  3. 受信したメッセージについてルールが実行されます。このとき、本文はまだダウンロードされていないため、本文に含まれる文字列を条件としたルールは動作しません。
  4. ユーザーが受信したメッセージを開くか、自動送受信のタイミングで本文のダウンロードが行われます。

したがって、ルールが実行される前に本文の参照を行うことにより、本文のルールが実行できるようになります。

以下のマクロは、新着メッセージを受信したタイミングで本文を参照することにより、IMAP4 サーバーから本文のデータを受信し、その後実行される自動仕分けで本文に含まれる文字列を条件とするルールを動作するようにするものです。

' ここをトリプルクリックでマクロ全体を選択できます。
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
    Dim objMsg
    Dim strBody As String
    If Instr(EntryIDCollection,",") = 0 Then
        Set objMsg = Session.GetItemFromID(EntryIDCollection)
        strBody = objMsg.Body
    Else
        Dim strIDs
        Dim i
        strIDs = Split(EntryIDCollection, ",")
        For i = LBound(strIDs) To UBound(strIDs)
            Application_NewMailEx strIDs(i)
        Next
    End If
End Sub

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

IMAP4 でメッセージを受信したときに本文に含まれる文字列を条件とした自動仕分けルールを実行させる方法」への6件のフィードバック

  1. お世話になります。hide32と申します。上記マクロについて設定してみましが、うまく動作いたしません。Outlook2003でVisual Basic EditorからThiOutlookSessionにマクロを設定し、さらに仕訳ルールを適用したのですが本文は見ていないようです。設定方法が違っている可能性が高いですが、設定方法をご教授願えますでしょうか。宜しくお願いします。

  2. To hide32 さん返信が遅くなってすみません。Outlook 2003 で確認したところ、どうやら Outlook 2003 ではうまく動作しないようです。記事の内容を修正しました。

  3. Masafumiさんご確認ありがとうございました。Outlook2003だとダメなんですね。。。。残念です。もしOutlook2003でも実現できる方法がありましたら検討していただけると嬉しく思います。

  4. Windows 7 上でOutlook2007 を使用しています。「IMAP で受信したメールの本文内の文字列を利用する仕分け」について、大変困っていたところで、今回の説明でたいへん意を強くし、早速実行してみました。その結果の状況をまとめます。まず、Outlook2007 を立ち上げる前に送信されていたメールについては、Outlook2007 の立ち上げにより受信したメールの本文に対してルールが実施されて仕分けができました。たいへんありがたいと思いました。ところが、Outlook2007 を立ち上げ中(使用中)に発信されたメールについては、自動受信した際に上のルールは実施されませんでした。今回説明してもらった対策は、後者の場合も対象となるものなのでしょうか?まずはその点を確認させてください。また、後者の場合でルールが使えていない原因、対策についてコメントいただければ幸いです。指示していただいているマクロの内容が具体的には理解できていない初心者です。よろしくお願いします。

  5. To 名前なしさん私の PC では起動中に受信したメッセージでもルールで処理されます。タイミングなどによるのかもしれませんが、ちょっと原因はわかりかねます。何かわかったらコメントをします。

  6. ありがとうございます。コメントをお待ちします。それから、名前はつけていたつもりなのですが、、、

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中