Notesからのメールがスレッドで繋がりませNo.05464
ヒラメ さん 19/08/14 12:50
 
Notesを使用している外部の方とメールやり取りすることがあるのですが、その際に
「このメールのスレッド」ボタンを押しても繋がっているはずのメールが表示されな
いことがあります。

Notes同士でメールが送られ、そこに私がCcで含まれている場合、Notesで使用されて
いるドメインが「Customer.com」から「LocalDomain」に書き換わっていることが原
因だと思います。

メールヘッダー部分の抜粋は下記のようになっています。

この状態でもうまくスレッドが繋がるように対策していただけると非常に助かるので
すが。。

1. 私から取引先(Aさん)宛て
Message-Id: <3CF〜@MyCompany.co.jp>

2. 取引先(Aさん)から私に返信(1のメールとスレッドが繋がっている)
In-Reply-To: <3CF〜@MyCompany.co.jp>
References: <3CF〜@MyCompany.co.jp>
Message-ID: <〜xxxxxx@Customer.com>

3. 取引先(Aさん)の方が取引先の別の方(Bさん)に返信(私はCcに入っている。
スレッド繋がらず。)
In-Reply-To: <〜216597@LocalDomain>
References: <3CF〜@MyCompany.co.jp> <〜216597@LocalDomain>
Message-ID: <〜xxxxxx@Customer.com>

秀丸メール Version 6.93 Beta 3 (32bit)
Windows 7 Professional, Version 6.1, Build 7601 (32bit)

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

[ ]
RE:05464 NotesからのメールがスレッドでNo.05465
ヒラメ さん 19/08/14 12:53
 
連投すみません。IDが書き換わってしまったようなので再送いたします。


1. 私から取引先(Aさん)宛て
Message-Id: <3CF〜@MyCompany.co.jp>

2. 取引先(Aさん)から私に返信(1のメールとスレッドが繋がっている)
In-Reply-To: <3CF〜@MyCompany.co.jp>
References: <3CF〜@MyCompany.co.jp>
Message-ID: <〜"216597@Customer.com">

3. 取引先(Aさん)の方が取引先の別の方(Bさん)に返信(私はCcに入っている。
スレッド繋がらず。)
In-Reply-To: <〜216597@LocalDomain>
References: <3CF〜@MyCompany.co.jp> <〜216597@LocalDomain>
Message-ID: <〜"218852@Customer.com">

[ ]
RE:05465 NotesからのメールがスレッドでNo.05468
秀まるお2 さん 19/08/14 17:26
 
 これはすみませんがスレッド接続不可になります。

 まず、

    Message-ID: <〜"216597@Customer.com">

 のメールに対して

    In-Reply-To: <〜216597@LocalDomain>

 のメールを付けることは出来ないです。しいて何とかするとしたら、LocalDomain
を何らかの方法でCustomer.comに置き換えるような、メールの改変の処理をしないと
ダメだと思います。

 それとは別に、

    References: <Message-Id-A> <Message-Id-B>

 のような指定がされて、Message-Id-Bが見つからない場合Message-Id-Aの方にスレ
ッドをつなげたらいいということもありえますが、これも、秀丸メールの内部的な都
合というか、高速化の処理の都合で無理があります。

 秀丸メールでのスレッドの連結は高速化のため、および内部的なデータ構造の仕組
み的に、つながる元を複数探すような処理はしてないです。そういううことは出来な
い割り切りをしてしまってます。

 なのですみませんがあきらめていただくしか無いです。

 Notesさんの方で、そういう余計な変換はしないようにしてくれないとどうしよう
も無い気がします。

[ ]
RE:05468 NotesからのメールがスレッドでNo.05470
ヒラメ さん 19/08/14 18:07
 
ご確認ありがとうございました。

速度が犠牲になっては本末転倒ですので本件はあきらめます。
簡易的に件名で検索して一覧作成で逃げようと思います。

[ ]
RE:05470 NotesからのメールがスレッドでNo.05472
秀まるお2 さん 19/08/15 08:45
 
 「全般的な設定・メール一覧・スレッド表示」の中の「Re:で始まるメールを無理
矢理連結する」と「無理矢理連結する範囲を最大限に拡大する」をONにするとつなが
るかもしれません。(つながって欲しくないメールがつながる可能性もありますが)

 一回試していただくといいかもしれません。

[ ]
RE:05472 NotesからのメールがスレッドでNo.05473
ヒラメ さん 19/08/15 10:09
 
ご指摘ありがとうございました。確かに繋がるようになり便利です。ただ、フォルダ
内だけで繋がるようで、受信メールから送信済みメールの方までは探してくれません
ね。

今回の場合は私がCcに入った状態で相手側内で連続してやり取りをしている状態です
ので、受信メールだけの繋がりでもある程度効果がありました。

選択しているメールから、件名で検索して一覧作成を実行するマクロを作ろうとして
いるのですが、件名の「Re: Fw: [〜] 」等をうまく取り除けないかと考えて止まっ
てしまいました。

秀丸メールの検索ボックスにセットされる標準検索文字列ではうまく処理しています
ね。マクロ用にこの処理を関数化していただけるとうれしいです。。。

[ ]
RE:05473 NotesからのメールがスレッドでNo.05474
ヒラメ さん 19/08/15 14:37
 
>選択しているメールから、件名で検索して一覧作成を実行するマクロを作ろうとし
>ているのですが、件名の「Re: Fw: [〜] 」等をうまく取り除けないかと考えて止ま
>ってしまいました。

正規表現の置換を使えば割と簡単でした。。。ご参考にマクロを置いておきます。

関数の件は忘れてください。お騒がせしました。


loaddll "tkinfo.dll";
$subject = dllfuncstr("CurrentHeader", "Subject");

loaddll "HmJre.dll";
while(true){
  #n = 0;
 
  // Re: Fw:
  $s = dllfuncstr("ReplaceRegularNoCaseSense",
    "^(re|fwd?) ?[;:] *", $subject, 0, "", 0);
  if($s != ""){
    $subject = $s;
  }else{
    #n = #n + 1;
  }
 
  // [~]
  $s = dllfuncstr("ReplaceRegularNoCaseSense",
    "^\\[[^\\]]*\\] *", $subject, 0, "", 0);
  if($s != ""){
    $subject = $s;
  }else{
    #n = #n + 1;
  }
 
  if(#n == 2){
    break;
  }
}
loaddll "tkinfo.dll";
message $subject;

[ ]
RE:05474 NotesからのメールがスレッドでNo.05475
秀まるお2 さん 19/08/15 16:35
 
 秀丸メールでなんとかするとしたら、メールのデコード時にMessage-Id: / In-Rep
ly-To: / References:ヘッダの中の文字列変換するようなことを設定で可能にすると
かになりますでしょうか。

 あまり汎用的な機能にしても必要とする人は居ないと思うので、Notes専用で、た
とえば

   □ Notes用、"@LocalDomain"の置換    [____________________________]

 みたいな設定を用意するとか。

 「全般的な設定・上級者向け・デコード」配下に追加する形で。

[ ]
RE:05475 NotesからのメールがスレッドでNo.05476
ヒラメ さん 19/08/15 16:59
 
ご提案ありがとうございます。でも私もメールの改変まではやりたくありませんので、
マクロの方で何とかしたいと思います。

お手数をおかけしました。ご丁寧にありがとうございました。

[ ]