QMAIL3ではWindowsアドレス帳とOutlookのアドレス帳を読み込めるようにしてあります。どちらもMAPIでアクセスしているのですが、一度もWindowsアドレス帳を立ち上げたことがないと、IMAPIContainer::GetContentsTableが失敗します。アドレス帳ファイルは自動的に作られるのですが、なぜか読めないようです。
で、Windowsアドレス帳のロードに失敗するとOutlookのアドレス帳のロードもやめてしまっていたので、ここは無視して進めるようにしました。
さらに、Outlookでメールアカウント*1が一つもない場合に、MAPILogonExにMAPI_LOGON_UIを指定していないと、やはりIMAPIContainer::GetContentsTableが失敗します。メールアカウントが一つでもあれば問題ないようです。MAPI_LOGON_UIを指定してもダイアログが出てくるということもないので、何が問題なのか良くわからないのですが、取り立てて害もないようなので付けておくことにしました。何か変なことがあったら教えてください。
*1 もしくはプロファイル?
日付フォーマットは多くの部分で決めうちでyyyy/MM/ddのような形式にしていたのですが、ロケールによっては他の形式が望ましい場合も多そうなので、ユーザが指定できるようにしました。
ある時からQMAIL3の起動が非常に遅くなっていたのですが、アドレス帳が原因とは。。。<br>Windowsアドレス帳は使っておらず、OutlookはExchangeのアカウントがいくつか設定してありますが、この状態だと「MicrosoftExchangeServerが使用できません」というメッセージが表示されるようになって気が付きました。<br>オプションで「Outlook」のチェックを外したところ、昔のように軽快に起動するようになりました。
なるほど。そもそもなぜExchange Serverへのログインに失敗するのかが謎ですが、黙ってタイムアウトまで待ってしまうのはいまいちですね。<br><br>ということは、Exchange Server上にある連絡先をアドレス帳で使うようにOutlookで設定していてもQMAIL3からは見えないということですね(そんなに大量に見えても困るかもしれませんが)。<br># Exchange Serverの環境でOutlookを使ったことがないので全く良くわかっていません…
外部アドレス帳の修正乙ですが、外部アドレス帳をqmailのアドレス帳にコンバートできるようにはしてもらえないのでしょうか?<br><br>受信メールの送信者がすぐわからなくて困ってます。
Outlookを起動し、Exchange Serverに接続されている状態で試してみましたが、接続に少し(ほんの一瞬ですが)時間が掛かるものの、エラーにはならないためタイムアウトも発生しません。<br>なお、仰るとおり、Exchange Server上の連絡先はQMAIL3からは見えませんでした。
> BBBさん<br>以下のURLにあるスクリプトを適当にいじってadressbook.xmlのXMLを作成すれば良いのではないかと思います。<br><http://snak.tdiary.net/20041117.html#p03><br><br>この件と、受信メールの送信者がすぐわからなくて困ることの関係が良くわからないのですけど…
> mamkさん<br>なるほど。おそらく何かが足りなくて、QMAIL3単体でExchange Serverへのログオンができないというのが、そもそもの問題ですね。<br><br>ついでといっては何ですが、よろしければ教えていただけないでしょうか。Exchange Server上の連絡先は、Outlookのアドレス帳([ツール]-[アドレス帳]で開くウィンドウ)ではどのように表示されるのでしょうか?
文面で説明するのは難しいので、キャプチャしたものをメールで送ります。
頂きました。ありがとうございます。<br><br>QMAIL3では個人用アドレス帳のエントリだけリストアップしているので、サーバ上のエントリはリストアップされないということですね。<br><br>サーバ上のアドレス帳をリストアップしてしまうのはいまいちですが、補完の候補にできたりすると便利そうです。どちらかというとLDAPをサポートした場合に近そうなイメージでしょうか。
そうですね、リストアップすると大変なことになるので、LDAPのような使い方ができると嬉しいかもしれません。実際にOutlookでもリストからは選ばず、テキストボックスで検索(補完)しながら選びます。<br>そのとき、LDAPサーバだと「サーバ名を設定する」という感じになると思いますが、その代りにExchange Server上の「エントリを選択する」というUIになると使いやすそうです。
言葉が足りなかった様です。すみません。<br>私はZERO3を使っているのですが、qmail3のアドレス帳では無くOutlookのアドレス帳を使っています。<br>その場合メールを送信する時には問題無いのですが、メールを受信した時送信者のアドレスしか表示されず(電話帳に登録してある人物名が表示されない)、見覚えの無いアドレスの場合いちいちアドレス帳を開いて個人を確認するという方法をとっています。<br><br>これは私の設定がアホなんでしょうか?<br>あまりスクリプト関係は強く無いもので<http://snak.tdiary.net/20041117.html#p03> このスクリプトを使うとどのような事になるのかよくわからないのです。<br>上記のスクリプトを使えば解決するのであれあ独学で解決しようと思いますが、まだ対応されてない問題であれば対応お願いいたします。
header.xmlの20行目付近に、「@FormatAddress(From, 3)」というのがあると思いますが、これを「@FormatAddress(From, 3, 1)」とすると、Fromにアドレスだけが指定された場合に、アドレス帳から名前を引いてくるようになります。<br><br>関係する話としては以下のURLが挙げられます。<br><http://snak.tdiary.net/rast.rb?query=FormatAddress><br><http://q3.snak.org/bts/guest.cgi?project=Q3&action=view_report&id=338><br><http://q3.snak.org/bts/guest.cgi?project=Q3&action=view_report&id=381>
わちゃ、勉強不足でしたか・・・<br>お手数おかけして申し訳ありません。<br>これからやってみます。
受信メールのヘッダーに送信者の名前を表示されるようになりました。<br>本当にありがとうございます。<br><br>また、しつこいうようで恐縮なのですが受信フォルダのリストビューに表示される送信者アドレスも名前表示にできないのでしょうか?
[表示]-[カラムをカスタマイズ]で指定できます。送信者の行のところで[編集]を押して、[タイプ]を[その他]にし、[マクロ]に「@FormatAddress(From, 3, 1)」とした上で、[キャッシュ]にチェックを入れておけばよいと思います。