受信メールのFrom,Ccなどへのアドレスの名No.09444
なげなげ さん 02/10/16 22:28
 
はじめまして。 鶴亀メールに引っ越して来ました。

通常、メール本文の表示欄において、ヘッダを簡易表示モードにして使っています。
この時、From,CcなどE-Mailアドレス表示が、アドレス帳に登録済みの名前で
表示できるようにはならないでしょうか? (メールについてくる名前だけでは、フ
ォーマットが、各自ばらばらなんで嫌だなというだけですが)
(メール一覧で「アドレス帳に登録されている名前を表示する」が選択でるようなイ
メージです)
また、メール一覧でもそうですが、その時、グループ名も表示できないでしょうか?
アドレス帳の作り方次第なんでしょうが、会社で使っていると鈴木さんとかありふれ
た名前だと、複数の部署に居てて…
(アドレスを選択する時は、セクション毎にグループを作って階層化しているのでそ
れぞれのグループの名前が短い方が使い易いですし…)

また、マクロでヘッダ部のアドレスを上記のような表示を行うものを作ってみました
が、FindBookGroup関数は、最下層のグループ名しか返ってこないようですね。さら
に上位のグループ名を取得することはできなでしょうか?
(秀丸・鶴亀とも始めてのマクロなんで、まだよくわかってないんで…)

[ ]
RE:09444 受信メールのFrom,CcなどへのアNo.09446
秀まるお2 さん 02/10/17 09:55
 
 実は同じような話は過去にもありましたが、メール内容の枠の中には基本的に
メールの生データそのまま表示するという原則というか、鶴亀メールの基本的な
作りの問題があって実現困難という話があります。

 ま、3枠区切りのプレビュー画面の中(またはエディタの場合でも「編集を許
可する」がOFFの場合)に限ってということなら実現不可能でもないですが…。
いろいろ矛盾が起きる可能性を検証しないといけないのでそう易々と修正できる
物でも無いです。

 他に実現して欲しい話というと、

 − To:欄に非常に多くのメールアドレスが入っている場合に、「...」の
   ような表示を使って1行程度にまとめて欲しい。
 − Date:ヘッダを日本語で表示して欲しい。

 ってな話が過去にありました。

 まぁ、その辺は要望がたまり次第、優先順位を上げていく形にはなります。

>また、メール一覧でもそうですが、その時、グループ名も表示できないでしょうか?

 現状では出来ません。

 メール一覧については、アドレス帳に登録した備考1(または備考2,3)の内容
を表示する列も欲しいって話がありました。それはそれで要望リストに入れては
いますけど、それをサポートする前に、列の自由な並べ替えを優先するというこ
とで、そのまま保留になっています。

 メール内容の枠の中にグループ名を表示するにしても、具体的にどの場所に表
示するのか(どういう希望なのか)僕には分かりません。仮にその辺の要望を把
握したとしても、そもそもの問題(最初の話)があるのでどっちにしても実現困
難です。

>また、マクロでヘッダ部のアドレスを上記のような表示を行うものを作ってみました
>が、FindBookGroup関数は、最下層のグループ名しか返ってこないようですね。

 この関数も、誰かからの要望で作った物だったと思いますが、そのときの要望
自体がそのような形(最下層のグループ名だけ分かればよい)だったのだと思い
ます。

 しいて、グループ名の階層全体を返すように、例えばFindBookGroup2とか追加
するのは簡単に出来ると思います。んでは近々追加することにします。

[ ]
RE:09446 受信メールのFrom,CcなどへのアNo.09448
ひろ さん 02/10/17 10:42
 
 秀まるおさん、なげなげさん今日は、ひろです。
>  ま、3枠区切りのプレビュー画面の中(またはエディタの場合でも「編集を許
> 可する」がOFFの場合)に限ってということなら実現不可能でもないですが…。
 ヘッダの内容をアドレス帳に併せて変化させる件ですが、私は反対です。
 何故ならこの仕様になってしまうと、同じ名前の人をアドレス帳に複数登
録する場合、一々フル・ネームで登録したり、場合によっては所属まで書か
ないと「メール内容」エリアで識別できなくなってしまいます。これは不便
ですし、Organization ヘッダ規定されているにも関わらず、実際に送信時に
>From ヘッダに相手の所属名まで付加するのはおかしくので、編集し直したく
なります。(送信メールまで変化していると、編集すら出来なくなりかねませ
ん。) 所属などの情報に関しては、「備考」等の情報もヘッダの内容変更時
に表示する設定があれば、解決は出来るでしょうが、「備考」〜「備考3」の
どれとどれを表示するかの設定まで必要になってしまい、あまりに煩雑です。
 確かに「全て表示」としたときだけ元のデータを表示するという方法も考
えられますが、逆にそのために表示ヘッダを切り替えるのが面倒です。既に
アドレス帳での登録名は、タイトル・バーに表示されている以上、全く同じ
情報をヘッダ領域に表示するよりも、現状の仕様のまま各々使い分けた方が
よいと考えます。これについての考えは、To の省略についても同様です。

[ ]
RE:09448 受信メールのFrom,CcなどへのアNo.09453
秀まるお2 さん 02/10/17 11:47
 
 ひろさんの内容を見て、やはりメール内容の枠の中に加工した物を表示すると、
いろいろ問題が出るような気がします。

 しいて対応するならば、たとえばOutlook Expressみたいにメールのプレビ
ュー部分のタイトルバーを複数行表示にするって形が限界じゃないかと思います。

[ ]
RE:09453 受信メールのFrom,CcなどへのアNo.09466
なげなげ さん 02/10/18 09:42
 
秀まるおさん、ひろさん、早速のコメントならびご回答ありがとうございます。
下名の要望の件、対応が難しいこと了解しました。

マクロで、メッセージウィンドウに出せば済みそうなので、そちらの方を頑張ってみ
ます。 ついでに印刷までしようとして、はまっています。^^;

また、FindBookGroup関数の機能を、もし拡張してくださるのであれば、当該アドレ
スの階層位置を返す関数と、階層位置を指定してグループ名を返す関数を用意してい
ただければありがたいです。それがあれば好みに応じて何でも出来そうですよね。

[ ]
RE:09466 受信メールのFrom,CcなどへのアNo.09493
秀まるお2 さん 02/10/21 11:58
 
>また、FindBookGroup関数の機能を、もし拡張してくださるのであれば、当該アドレ
>スの階層位置を返す関数と、階層位置を指定してグループ名を返す関数を用意してい
>ただければありがたいです。

 前者については、たとえばFindBookGroupFull関数を追加して、返す値は、た
とえば

     \test\test-sub

 みたいなフルパス形式を返すということでいいでしょうか?

 後者については、たとえば「\test」というグループ名のパス名を指定して、
その配下にあるサブフォルダの一覧を返すとかってことでしょうかね?

 たとえば、

 EnumBookGroup関数を追加して、第1パラメータにグループ名のパス名、第2
パラメータに配下のグループ名の並び順(0〜)を指定するとか。

[ ]
RE:09493 受信メールのFrom,CcなどへのアNo.09523
なげなげ さん 02/10/22 18:47
 
早速の対応検討ありがとうございます。

>>また、FindBookGroup関数の機能を、もし拡張してくださるのであれば、当該アドレ
>>スの階層位置を返す関数と、階層位置を指定してグループ名を返す関数を用意してい
>>ただければありがたいです。
>
> 前者については、たとえばFindBookGroupFull関数を追加して、返す値は、た
>とえば
>     \test\test-sub
> みたいなフルパス形式を返すということでいいでしょうか?

アドレスを指定して、そのアドレスの属する各階層のグループ名が取得で
きれば、フルパス形式で返ってきても全然OKです。
(皆さんが使い易い一般的に形にしていただければ結構です)

もともとは、下記のようなイメージのアドレス帳があった時、以下のように使
える関数があればなあと思っていました。
dllfuncstr("FindBookGroupN", xxx@xxx.xxx.co.jp, 3) → "□□課"
dllfuncstr("FindBookGroupN", xxx@xxx.xxx.co.jp, 2) → "○○部"
dllfuncstr("FindBookGroupN", xxx@xxx.xxx.co.jp, 1) → "※※事業所"
んで、この時、xxxxx@xxx.xxxx.co.jpさんは、何階層目のグループに属して
いるのかな判ればということでした。

−−−アドレス帳−−−
g1 ※※事業所
g2 ○○部
●●B,  xxx@xxx.xxx.co.jp,…
g3 □□課
■■K,  xxx@xxx.xxx.co.jp,…
g4 △△グループ
▲▲GL,xxx@xxx.xxx.co.jp,…
∴∴主任,xxx@xxx.xxx.co.jp,…
g4 ▽▽グループ
▼▼GL,xxx@xxx.xxxx.co.jp,…

[ ]
RE:09523 受信メールのFrom,CcなどへのアNo.09539
秀まるお2 さん 02/10/23 13:40
 
 んでは、FindBookGroupPath関数だけあれば実現可能そうな気がするので、そ
うします。

 あるいはレベルを返す関数や各レベルごとのグループ名を返す関数が必要なら、
補助的にそれらを計算する関数を作る手もありますけど。

 マクロで計算するにはこんな感じになります。

FindBookGroupLevel:
    // パラメータ1: メールアドレス
    // 返り値:      階層のレベル
    $$s = dllfuncstr("FindBookGroupPath", $$1);
    if( $$s == "" ) return -1;
    ##level = 0;
    while(1) {
        ##x = strstr( $$s, "\\" );
        if( ##x < 0 ) {
            break;
        }
        $$s = midstr( $$s, ##x + 1, 256 );
        ##level = ##level + 1;
    }
    return ##level;


FindBookGroupN:
    // パラメータ1: メールアドレス
    // パラメータ1: 取得したいグループ名の階層番号(0〜)
    // 返り値:      階層のレベル
    $$s = dllfuncstr("FindBookGroupPath", $$1);
    if( $$s == "" ) return "";
    if( $$s == "\\" ) return "";
    $$s = midstr( $$s, 1, 256 );
    ##level = 0;
    while( ##level < ##2 ) {
        ##x = strstr( $$s, "\\" );
        if( ##x < 0 ) {
            return "";
        }
        $$s = midstr( $$s, ##x + 1, 256 );
        ##level = ##level + 1;
    }
    ##x = strstr( $$s, "\\" );
    if( ##x > 0 ) {
        $$s = leftstr( $$s, ##x );
    }
    return $$s;

[ ]
RE:09539 受信メールのFrom,CcなどへのアNo.09546
なげなげ さん 02/10/23 18:50
 
> んでは、FindBookGroupPath関数だけあれば実現可能そうな気がするので、そ
>うします。

実装される日を楽しみにしています。
また、マクロのサンプルまで頂きありがとうございます。 m(__)m

ところで、アドレス帳を整理してて気付いたのですが、
名前欄に「(」,「)」【←半角の括弧】は使えないのでしょうか?
たとえば、「●▲(○△)」と入力すると、「"」で囲まれた形で登録されてしまいます。
アドレス帳データ(AdrBook.txt)の方を直接いじったときは、「"」は付きませんで
した。

[ ]
RE:09546 受信メールのFrom,CcなどへのアNo.09548
秀まるお2 さん 02/10/24 10:48
 
>名前欄に「(」,「)」【←半角の括弧】は使えないのでしょうか?

 名前に括弧を入れてしまうと、受け取り側のメールソフトが混乱してしまう場
合があります。この場合に""で囲むのはわざとです。

 メールアドレスと名前の表記は普通2通りあります。

 − 名前 <Email>
 − Email (名前)

 前者のケースで、たとえば名前が「Email1 (Email2)」だったとすると、

 Email1 (Email2) <Email3>

 となってしまい、果たして本当のメールアドレスがどれなのか分からなくなっ
てしまいます。したがってこういう場合は

 "Email1 (Email2)" <Email3>

 のような表記することで混乱を避けることが出来ます。

 ま、かっこ内に「@」が入ってなければ人間が見て間違うことはありませんが、
コンピュータソフトが相手なので、念のため""で囲んでやってます。でないと
「鶴亀メールは行儀の悪いメールソフトだ」と言われてしまうおそれがあります。

[ ]
RE:09548 受信メールのFrom,CcなどへのアNo.09605
なげなげ さん 02/10/28 17:39
 
> 名前に括弧を入れてしまうと、受け取り側のメールソフトが混乱してしまう場
>合があります。この場合に""で囲むのはわざとです。

そういう仕様なんですね(そうしないといけないんですね)、了解しました。

またV2.14で、FindBookGroupPath関数を早速実装していただきありがとうございまし
た。
所望の動作をマクロでできるようになりました。

[ ]