2005-12-08 [長年日記]

[Q3] マクロでアドレス帳にアクセス

マクロでアドレス帳を参照できるのは、@FormatAddressくらいですが、アドレス帳自体もXMLファイルなのでスクリプトを使えばアクセスすることができます。

例えば以下のようなJavaScriptを書いて、scripts/addressbook.jsとして保存します。

// アドレス帳のフルパスに書き換える
var addressBookPath = "C:/mail/profiles/addressbook.xml";
var address = arguments(0);
var doc = new ActiveXObject("MSXML2.DOMDocument");
doc.async = false;
doc.load(addressBookPath);
var entry = doc.selectSingleNode(
  "/addressBook/entry[addresses/address=\"" + address + "\"]");
if (entry == null)
  result.value = "";
else
  result.value = entry.selectSingleNode("name/text()").nodeValue;

これをマクロからこのように呼び出します。

@Script(@Load('scripts/addressbook.js'), 'JScript', @Address(From))

これで、Fromのアドレスからアドレス帳に登録されている名前を引くことができます。

本日のツッコミ(全6件) [ツッコミを入れる]
# taketori (2005-12-13 15:20)

この機能、とてもほしくて要望を出そうかと思っていたところでした。<br>ところで、12/13日付のnightly buildを使ってますが、アドレスの先頭が大文字(Taketori@hoge.jpみたい)の時にインクリメンタルサーチの対象外となるようです。<br>上記の例で、「Tak」とかうつとメールアドレスの途中にTakが含まれるアドレスがリストされます。

# snak (2005-12-15 13:28)

スクリプトを使わなくてもできるように、@LookupAddressBookという関数も追加しました。<br><br>それから、インクリメンタルサーチの対象にならない件を調べてみたのですがうまく再現できませんでした。再現するようなaddressbook.xmlを作って見せていただけないでしょうか?

# taketori (2005-12-16 15:02)

作りましたが....。どうしましょうか。<br>ここに張り付けますか。それともどこか別のところに続きを書いた方がいいでしょうか。ちなみに23行ぐらいです。<br># addressbookについて、まだいくつか要望がありますので、その辺もふまえた誘導をしていただけたら幸いです。

# snak (2005-12-18 04:30)

バグトラックに書き込んで頂けないでしょうか。<br><http://q3.snak.org/bts/guest.cgi?project=Q3&action=top><br>よろしくお願いします。

# taketori (2005-12-18 10:58)

早速、BTS:1045に登録しました。<br>これ以外の要望はまとめて後日登録したいと思います。<br>その際も、よろしくお願いします。

# snak (2005-12-18 11:33)

ありがとうございます。まったく別のところと勘違いしていました。直しておきましたのでご確認ください。


トップ «前の日記(2005-12-07) 最新 次の日記(2005-12-09)»