指定したURIのメッセージを開くためのMessageOpenアクションを追加しました。新しいメッセージウィンドウを開くかどうかも引数で指定できます。
menus.xmlのリストビューのコンテキストメニュー辺りにこんな感じのアイテムを追加すると、選択したメッセージと同じスレッドのメッセージがコンテキストメニューで表示されます。
<menuitem dynamic="MessageOpen" param=" @Progn(@Set('uri', @URI()), @ForEach(@Thread(), @If(@Equal(@URI(), $uri), @True(), @Set('param', @Concat($param, Subject, '\t', @URI(), '\n')))), $param) "/>
このとおりやると動くのですが、別フォルダの同一スレッドも見られると便利だと思って、@Thread(@True())としてもうまく表示されません。2.9.28.3701を使っています。
うまく表示されないとは具体的にどうなるのでしょうか?
表示して欲しいスレッドが表示されません。@MessageBox(@Thread())を実行すると表示されるのに、@MessageBox(@Thread(@True()))とすると何も表示されません。フォルダ依存性があって、InBox, OutBox, Sentでは表示されるのに、同じスレッドを他のフォルダに移すと表示されなくなります。File-Maintenance-Checkしてみましたが、変わりませんでした。
InboxやOutboxなどでは@Thread(), @Thread(@True())ともに問題が無く、その他のフォルダでは@Thread()は問題なく@Thread(@True())が空になるという理解でよいでしょうか?<br><br>どこかのフォルダに同じMessage-Idのメッセージが含まれているということはありませんか?
SentBoxに送信控えがあり、Bccで帰ってきたメールも残してありますので、同じMessage-Idのメッセージは多数あります。これが原因であれば仕方ないですね。<br>全く同じ現象ではありませんが、「@Thread(@True())が空になる」を再現できるデータを作成しましたので、バグトラックに流しておきます。
バグトラックに頂いたデータで確認したところバグがあったので直しておきました。ありがとうございました。<br><br>ちなみに、同一のMessage-Idがある場合も調べてみましたが、こちらは私の勘違いだったようで一応スレッドは繋がります(どちらが検出されるかはそのとき次第ですが)。