In-Reply-To で指定されたメールが存在しNo.06469
ながまる さん 20/03/28 01:39
 
同じ In-Reply-To を持つメールが複数ある状況で、 かつその値を Message-ID に持
つメールは存在しない場合に、
これらをスレッド表示にするようなオプションはありませんか?

もし無ければ、そのような機能のオプションを増やして欲しいです。

背景
----
一部の BTS やプロジェクト管理ツールの通知メールでは、チケットの更新の通知
メールが全て、最初のチケット作成の通知メールの返信になるような、 Message-ID
と In-Reply-To 両ヘッダの持ち方をします。

このため、途中からチケットに参加した場合など、何らかの事情で最初のチケットの
通知メールが存在しない場合、 以降の更新の通知メールがスレッド表示になりません。

同様のパターンだと Outlook ではスレッド表示にしてくれるので、秀丸でも同様の
機能を実現できるオプションがあるとありがたいです。

スレッド表示した場合のツリーのルートの UI の表現は、空っぽ になるか、 メール
のタイトルや Message-ID のみが表示されたような、仮想的な存在になるかなと想像
しています。


[ ]
RE:06469 In-Reply-To で指定されたメールNo.06471
秀まるお2 さん 20/03/28 18:44
 
 In-Reply-to:ヘッダの中にMessage-Idが複数あるケースというか、たぶんReferenc
es:ヘッダにMessage-Idが複数あるケースかなぁと思います。

References: <....message-id-1....>,
            <....message-id-2....>,
            <....message-id-3....>

 みたいなのかなぁと思います。

 秀丸メール、たしかにご指摘の通り先頭の1つのMessage-Idしか認識しないです。

 複数認識するようにするには内部のデータ構造もスレッド生成のロジックも変えな
いといけなくて、それが大変ということで対応してないです。

 「全般的な設定・メール一覧・スレッド表示」に、

 □ Re:で始まるメールを無理矢理連結する
 □ 無理矢理連結する対象を最大限に拡大する

 のオプションがあります。両方ONにすると大抵はつながると思うんですが、ダメで
しょうか。

 それでダメな場合は現状対応できないことになります。

 In-Reply-To: / References:ヘッダの複数Message-Id検索対応もまたネタとして考
えてみたい所ではありますが、簡単では無いです。

[ ]
RE:06471 In-Reply-To で指定されたメールNo.06473
秀まるお2 さん 20/03/28 18:56
 
 もう1つ、とりあえずの回避策として、スレッド表示の中でメールをドラッグして
連結するってことも一応可能です。


    AAAAA
      +-- BBBBB

 のように連結したい場合は、BBBBBのメールをドラッグしてAAAAAの上にドロップす
る操作になります。ドラッグ中はマウスカーソルの矢印の右下に「スレッド」って出
てきます。

[ ]
RE:06473 In-Reply-To で指定されたメールNo.06474
ながまる さん 20/03/28 23:11
 
> In-Reply-to:ヘッダの中にMessage-Idが複数あるケースというか、たぶんReferen
>ces:ヘッダにMessage-Idが複数あるケースかなぁと思います。
>
そうではなくて、「同じ値の In-Reply-To: (や、 References:) ヘッダを持ってい
る `メール' が複数ある」というケースです。

ややこしいので、例示すべきでした。
本来であれば、
    AAAAA
      +-- BBBBB
      +-- CCCCC
      +-- DDDDD
      +-- EEEEE
というスレッドになるべきような In-Reply-to: ヘッダの構成になっているところ、
 AAAAA のメールだけが存在しない、という状態です。
(なんでそんな状態になるかは、最初の投稿を参照ください)

このとき
    [BBBBB のメールのタイトル等]
      +-- BBBBB
      +-- CCCCC
      +-- DDDDD
      +-- EEEEE
のような形でスレッド表示できないか? という内容でした。

このとき、例えば CCCCC を BBBBB にドラッグしてスレッド化しても、続いて届く D
DDDD や EEEEE はスレッドにならないんですよね。

BBBBB のメールのヘッダ読んで、 AAAAA 相当の Message-ID: ヘッダをもつダミーの
メールを自動作成するようなマクロを書いて、無理やりスレッド表示する事は実現で
きているのですが、なにぶん件数が多くて手動で実行することも結構辛く、
また、上記マクロの仕組みだと、受信時にスレッドの構成を見てダミーのメールの要
否を判断して自動的にマクロを実行させる良い方法が思いつかず、自動的にスレッド
表示して欲しいなぁという状況です。

> 「全般的な設定・メール一覧・スレッド表示」に、
>
> □ Re:で始まるメールを無理矢理連結する
> □ 無理矢理連結する対象を最大限に拡大する
>
これを試せていなかったので、後ほど試してみた結果を報告します。
…が、BTS やプロジェクト管理ツールの通知メールは、 Re: で始まらないので、効
果あるか微妙そうですね。。。

[ ]
RE:06474 In-Reply-To で指定されたメールNo.06475
秀まるお2 さん 20/03/30 09:54
 
 状況よく理解してなくてすみません。

 In-Reply-To:の元メールが存在しない場合はたしかにスレッドはつながらないです。
また、手動でスレッドをつなげるにも、元のメールが無いとどうしようもならないで
す。

 前回紹介させていただいたオプションでもダメだと思います。

 ダミーのメールをスレッド上に表示するのは技術的に難しいような気がするのです
が、とりあえず、横並びになってるBBBBB〜EEEEEのうち、一番古いメールをスレッド
の元にして、

    BBBBB
      +-- CCCCC
      +-- DDDDD
      +-- EEEEE

 にするのならなんとか出来るかもしれませんが、そういうのではダメでしょうか。

 ダミーのメールを表示するのもやろうと思えば出来るかもしれませんが、たぶんい
ろいろバグが出るのを覚悟の上でって話になってしまうと思います。

[ ]
RE:06475 In-Reply-To で指定されたメールNo.06478
ながまる さん 20/03/30 13:09
 
> そういうのではダメでしょうか。
>
そのような表示でも、非常に効果があります!
ぜひ対応をご検討いただけると嬉しいです。

[ ]
RE:06478 In-Reply-To で指定されたメールNo.06479
秀まるお2 さん 20/03/30 15:41
 
 こちらで改めてテストしてみたんですが、In-Reply-To:の根元となるメールが無か
ったとしても、件名などいくつか条件があれば、

 □ Re:で始まるメールを無理矢理連結する
 □ 無理矢理連結する対象を最大限に拡大する

 の2つのオプションONでスレッドがつながる可能性が高そうでした。

 ただし、連絡いただいた例だと、

    BBBBB
      +-- CCCCC
        +-- DDDDD
          +-- EEEEE

 みたいな並び順にはなってしまうようです。こうならず、

    BBBBB
      +-- CCCCC
      +-- DDDDD
      +-- EEEEE

 となるように改良するのは今からちょっとトライしみます。

 で、とりあえず上記2つオプションOFFでつながらないとしたら、それをつながる
ためには、サンプルメールが無いと対応が難しいです。具体的につながって欲しい
メールのサンプルを最低でも3通は送って欲しいのですが、どうでしょうか。

 From: / To: などのヘッダやメール本文は空でいいというか・・・

  Subject:
  Message-Id:
  In-Reply-To:
  References:

 の内容だけでも教えていただければテストできると思います。

[ ]
RE:06479 In-Reply-To で指定されたメールNo.06480
秀まるお2 さん 20/03/30 15:53
 
 サンプルメール送っていただくとしたら、"maruo@mitene.or.jp"にお願いします。

 Subject:ヘッダなどの内容だけだとしても、一応個人情報の関係があるのでメール
で送って欲しいです。

[ ]
RE:06480 In-Reply-To で指定されたメールNo.06481
秀まるお2 さん 20/03/30 18:44
 
 っとお返事した所でなんですが、出来る範囲で対策してみました。

 □ Re:で始まるメールを無理矢理連結する
 □ 無理矢理連結する対象を最大限に拡大する

 の両方ONの時に限って実行しますが、一応、Subject:ヘッダに関係なく(Re:とか
が無くても)、In-Reply-To:の内容が同じメールは全部1つのスレッドにまとまるよ
うにしてみました。

 サンプルメールを送っていただかなくてもこれでテストしていただくのが先でもい
いです。そっちご希望の場合は先にβ版アップロードさせていただきます。

[ ]
RE:06481 In-Reply-To で指定されたメールNo.06482
ながまる さん 20/03/31 09:22
 
早速ありがとうございます。
β版を試させていただきたいです。

上記では、 In-Reply-To: ヘッダにのみ言及しておりましたが、通知を出すシステム
によっては、 In-Reply-To: ヘッダ は存在せず References: ヘッダしか持っており
ませんでした。
このため、 追加で申し訳ありませんが、 References: ヘッダについても、同様にス
レッドにつながっていただきたいです。

In-Reply-To: ヘッダがある場合と無い場合両方のパターンについて、サンプルのヘ
ッダをメールで送付させていただきました。

[ ]
RE:06482 In-Reply-To で指定されたメールNo.06483
秀まるお2 さん 20/03/31 11:20
 
 送っていただいたサンプルで一応うまくスレッドにまとまることを確認しました。
Subjectが「Re:」で始まってないので今回の修正をしないとつながってませんでした。

 メールを探すのに極端に遅くなるといけないので、一応、つながる対象は、送受信
日時が30日以内でないとダメというか、それを超えたメールについてはつながらない
可能性があるって仕様にしてしまいました。

32bit版:
https://hide.maruo.co.jp/software/bin3/hmmail694b9_signed.exe

64bit版:
https://hide.maruo.co.jp/software/bin3/hmmail694b9_x64_signed.exe

 よろしくお願いします。

[ ]
RE:06483 In-Reply-To で指定されたメールNo.06484
ながまる さん 20/03/31 13:17
 
ありがとうございます!

期待したとおりスレッド化されていますし、表示にかかる時間も気になるほど遅くな
っていません。
(メールが多いと一瞬時間かかりますが、体感的にはほぼ気になりません)

一点気になるのは、各メールの直近の親メールとなるものが、一つに定まらない点で
す。


他のメールにも左右されるので、全く同じメールヘッダを持つメールの組み合わせで
も、フォルダを移動したりすることでスレッドのでき方が変わってしまいますが、
例えば、

+-- 20/03/13 07:35
 +-- 20/03/17 09:25
 +-- 20/03/13 07:45
  +-- 20/03/18 03:50
  +-- 20/03/18 03:40
   +-- 20/03/18 03:50
   +-- 20/03/18 03:50
    +-- 20/03/18 08:10
    +-- 20/03/18 08:10
     +-- 20/03/24 07:05
     +-- 20/03/18 08:10
      +-- 20/03/24 07:15
      +-- 20/03/24 07:05
       +-- 20/03/25 04:00
       +-- 20/03/31 05:30

と並んだり、

+-- 20/03/13 07:35
 +-- 20/03/13 07:45
 +-- 20/03/17 09:25
  +-- 20/03/18 03:50
  +-- 20/03/18 03:50
   +-- 20/03/18 03:50
 +-- 20/03/18 03:40
  +-- 20/03/18 08:10
  +-- 20/03/18 08:10
 +-- 20/03/24 07:05
 +-- 20/03/18 08:10
  +-- 20/03/24 07:05
  +-- 20/03/24 07:15
 +-- 20/03/25 05:00
 +-- 20/03/31 05:30

と並んだりします。

スレッドがガタガタになってしまうこと自体よりも、それによってメールの順番がご
っちゃになってしまうことが、メールを読みづらくしてしまっています。
可能なら、以下のようになるべく一番古い日付の一つの親にまとまってほしいです。

+-- 20/03/13 07:35
 +-- 20/03/13 07:45
 +-- 20/03/17 09:25
 +-- 20/03/18 03:40
 +-- 20/03/18 03:50
 +-- 20/03/18 03:50
 +-- 20/03/18 03:50
 +-- 20/03/18 08:10
 +-- 20/03/18 08:10
 +-- 20/03/18 08:10
 +-- 20/03/24 07:05
 +-- 20/03/24 07:05
 +-- 20/03/24 07:15
 +-- 20/03/25 04:00
 +-- 20/03/31 05:30

サンプルとなるメールのリストを、別途 xxxxx@mitene.or.jp に送付いたします。

---以下の内容はコミュニテックス会議室システムにより付加されました。
本文中のメールアドレスは伏せ字に変換されました。伏せ字にしたくない場合
はメールアドレスを""で囲んで書き込んでください。

[ ]
RE:06484 In-Reply-To で指定されたメールNo.06485
ながまる さん 20/03/31 13:28
 
なお、「スレッド中の最新メールを基準に並び順を決める」オプションが ON になっ
ています。

[ ]
RE:06485 In-Reply-To で指定されたメールNo.06486
ながまる さん 20/03/31 15:11
 
「このメールのスレッドをメニュー表示」および「このメールのスレッドをウィンド
ウ表示」を実行した場合、スレッドとしてつながっているメールが適切に一覧に挙が
りますが、その表示はツリー型のスレッドにならないようです。

実用上はこの様な動作でも困りませんが、動作仕様の整合性が無いことが気になるの
で、報告だけさせてもらいます。

[ ]
RE:06485 In-Reply-To で指定されたメールNo.06487
秀まるお2 さん 20/03/31 15:41
 
 お手数かけてすみません。サンプルメールもありがとうございます。

 詳しく調べてみたら、4通以上あるとダメでした。大変失礼しました。

 今直してアップロードしなおしました。

32bit版:
https://hide.maruo.co.jp/software/bin3/hmmail694b10_signed.exe

64bit版:
https://hide.maruo.co.jp/software/bin3/hmmail694b10_x64_signed.exe

 よろしくお願いします。

[ ]
RE:06486 In-Reply-To で指定されたメールNo.06488
秀まるお2 さん 20/03/31 15:53
 
 「このメールのスレッド...」のコマンドですが、現在選択してるフォルダの中の
メールについては現在のスレッドでつながってるメールを無理矢理仲間に入れつつも、
実際の表示はスレッドがつながらないって風になるようです。

 よそのフォルダにあるメールについてはつながり関係が分からないってことで一覧
には出てこないです。

 メールを探すのに、いわゆるMessage-Idの値をハッシュ値に変換して高速に検索す
るような形になってまして、そういう単純なつながりが無いと探し出すことは出来な
いです。すみませんがこれはこれで仕様にするしか無いかなぁと思います。

 この仕様については「Re:で始まるメールを無理矢理連結する」のヘルプの中に一
応追加させていただきます。

[ ]
RE:06488 In-Reply-To で指定されたメールNo.06489
秀まるお2 さん 20/03/31 16:05
 
 っと書いた所ではありますが、In-Reply-To:の値をIn-Reply-to:のハッシュ値配列
から探すだけなで済む話なので、そんなに遅くならず対応できそうな気がしてきまし
た。

 一回見直してみます。

[ ]
RE:06489 In-Reply-To で指定されたメールNo.06490
ながまる さん 20/03/31 17:17
 
通常のメール一覧でのスレッドは、スレッドの日付があいてしまうと、スレッドが分
離してしまうことがありました。
但し、フォルダ内にほかにも多くのメールがないと、スレッドが分離してしまう症状
は発生しませんでした。
(おそらく、メールを探すのに極端に遅くなるといけないので、そのような動きにな
っているのだと想像しますが)

技術的にそのような効果がでるかはわかりませんが、もし通常のメール一覧のスレッ
ド表示でも、 In-Reply-To: ヘッダや References: ヘッダの Message-ID ハッシュ
値配列から検索でき、表示時間が極端に遅くならずにできるのであれば、ある程度ス
レッドの日付があいていて、その間に多くの別のメールがある場合でも、ひとつのス
レッドに纏まるようにしていただけると助かります。

参考になるかわかりませんが、スレッドが分離してしまうことがあったメールのサン
プルについても、別途メールで送付させていただきました。

[ ]
RE:06490 In-Reply-To で指定されたメールNo.06491
秀まるお2 さん 20/03/31 17:30
 
 スレッドがつながるためには送受信日時が30日以内でないとダメというか、それを
超えてる場合は「つながるかつながらないか不定」みたいな処理にしてしまってまし
た。

 「Re:で始まる...」のオプションの方が7日以内でないとつながらないって風にし
てるので、こっちもそれでいいかと思った所ではありますが。

 こういう事例もあるということで、一応、遅くならないような追加の処理も加えた
上でうまく対処させていただきます。

[ ]
RE:06491 In-Reply-To で指定されたメールNo.06492
ながまる さん 20/03/31 17:52
 
はい、「遅くならないようなら」という範囲で、対応を検討いただけると嬉しいです!

P.S.
>   「Re:で始まる...」のオプションの方が7日以内でないとつながらないって風に
>してるので、こっちもそれでいいかと思った所ではありますが。
>
これは、私の個人的な使い方によるところが大きいのですが…
更新を注視すべきメールスレッドの最後のメールに「マーク」を付けておいて、メー
ル一覧をマーク付きのフィルタをしたスレッド表示にしておくことで、忘れた頃にや
ってくる更新を見落としにくいようにしています。
このため、日付が空いていても繋げられるスレッドはつながっておいていただけると、
とても助かります。。。

[ ]
RE:06492 In-Reply-To で指定されたメールNo.06493
ながまる さん 20/03/31 19:03
 
コメントしそびれていましたが、β10 の スレッドツリーの親が定まらない問題への
修正は、期待通り機能していました!

[ ]
RE:06492 In-Reply-To で指定されたメールNo.06498
秀まるお2 さん 20/04/01 11:50
 
 とりあえずこちらに先にコメントさせていただきますと・・・

 「Re:で始まる・・・」の方での対象が7日以内なのは、普通は7日以内には返信
してるだろうということでの仕組みでして、これを無制限にしてしまうと、たまたま
件名が同じ古いメールに無理矢理スレッドがくっついてしまう恐れがありまして、そ
ういう誤判定を減らすための対策になります。

 一応、普通のユーザー様での一般的な利用でうまく動くことを優先してのことなの
で、これはこのままの仕様にしようと思います。

 なるべくIn-Reply-To:でつながるように工夫して使って欲しいです。

[ ]
RE:06498 In-Reply-To で指定されたメールNo.06500
ながまる さん 20/04/01 12:53
 
『日付が空いていても繋げられるスレッドはつながって』欲しかったのは、『In-Rep
ly-To: (や、 References:) ヘッダの連結元メールが見つからない場合でも、同じIn
-Reply-To:のメールが複数ある場合はそれらを1つのスレッドに無理矢理連結する』
についてのみでした。

「Re:で始まるメール」を件名だけで無理やり連結する件については、関係ないメー
ルに連結しやすかったり、対象が広いと処理に時間がかかるといった懸念があると思
いますので、7日以内のままとすべきというのは仰るとおりです。

> 「Re:で始まる...」のオプションの方が7日以内でないとつながらないって風にし
>てるので、こっちもそれでいいかと思った所ではありますが。
>
この『こっちもそれでいいのかな』とおっしゃっていた部分に対して、 In-Reply-T
o: や References: ヘッダでの連結は、関係のないメールに連結することは考えにく
いですし、処理時間の懸念さえなければ、連結されたほうが嬉しいことがありますよ、
ということが上記のお伝えしたかったことでした。
誤解を招く書き方でスミマセンでした。

[ ]
RE:06500 In-Reply-To で指定されたメールNo.06527
秀まるお2 さん 20/04/03 17:05
 
 一応こちらにもコメントさせていただきますが、今日アップロードしたVersion 6.
94β12で期待された動作になってるはずということで、よろしくお願いします。

[ ]