初めまして、橘といいます。ご質問に先立って、誤って「解答」のページに投稿してし
まいました(アホ)。管理人様へ早急に削除のメールー送信させていただきました。管
理人様、reshia様、解答者の皆様、ご迷惑をおかけしてごめんなさい。
本題です。開発環境はWindowsXP(ホームエディション、SP1、個人使用)、VC++6.0
(sp6、MFC使用)です。
早速ですが、自分または自分を含む複数のメールアドレスを取得するのに私の環境では
レジストリキー
HKEY_CURRENT_USER\Software\Microsoft\Internet Account Manager\Accounts\00000001
のPOP3 User Nameから取得しています。この方法はOSがME、XP(プロフェッショナル)、
2000でも適用できるでしょうか。
1:上記のOSでもこのキーから取得できる。
2:上記のOSでもこのキーから取得できるが複数のメールアドレスは不可。
3:XPのみに当てはまる。
4:XPのみに当てはまるが複数のメールアドレスは不可。
5:たまたま取得できてるだけ。当然、複数のメールアドレスは不可
1以外の場合、上記OS上でも確実にメールアドレスを取得するにはレジストリの全キー
を検索するしか手はないのでしょうか。他の方法もしくは関数及び関連サイトなどご存
知でしたらご教授ください。
貴サイトのみならず http://www.mtakahashi.com、MSDNライブラリで「メールアドレス、
レジストリ、メール」等で検索して5日間かけて閲覧させていただきましたが、該当す
る事項を見つけられませんでした(ユーザーネームを取得する関数はいろいろあるみた
いですが)。かといって通信ソフトを作るわけではないので、私の狭隘な認識内で
「MAPI、SMTP」等は除外しました。また周囲に上記OSを使用している者はなく、いずれ
も個人ユーザーであるため確認もできません。やむなくこのようなご質問をさせていた
だいた次第です。よろしくお願いします。Ⅰ
どの程度のメールアドレスが欲しいのか分かりませんが、
上記レジストリでは Outlook Express ユーザの場合でのみ
取得することができるかと思います。
Outlook及び、他のメールツールを使用している場合は
メールアドレスを取得することができません。
ちなみに Outlook の場合はここかな?
HKEY_CURRENT_USER\Software\Microsoft\Office\Outlook\
OMI Account Manager\Accounts\00000001
また、レジストリの値は Outlook Express のバージョンに
よるものだと思われます。たぶん変わらないと思いますので
他のOSでも同じようなことはできるかと思います。
YOU様、お返事ありがとうございます。
正直なところレジストリでのキメ打ちに不安を抱いておりましたがYOU様の御助言で
それも払拭しました。
>他のメールツールを使用している場合は
>メールアドレスを取得することができません。
この点は数種類のメールツールをインスト後、レジストリを検索して確認してみます。
もし、その使用ツールによって場所がまちまちであればHKEY_CURRENT_USERを全チェック
してみます。それでだめならチェック範囲を他のキーへも敷衍していくつもりです。テ
スト環境がありませんが(農家ばっかり)何とか伝を頼って環境の方も探してみます。
お忙しい中、貴重なアドバイスを頂き、心より感謝いたします。ありがとうございまし
た。
解決になってしまっていますが、
メールソフトの全てがレジストリ上にデータを置いているとは限りません。
世の中に星の数ほどあるメールソフトの中には自前の独自ファイルに管理している物もある
と思います。そういう意味では対象にするメーラーを増やすためにひたすら調査し続ける必
要が出てくると思います。
そう考えると今の方法は、あまり現実的とは思えないです。
また、メールソフトの開発者が独自ファイルのフォーマットを変えてしまうと言うことも
ありえる話ですし、きちんと追従するのは無理ではないでしょうか?
内輪でしか使わないようなソフトであれば、それでもOKだと思うのですが、
一般の不特定多数を対象に公開するようなソフトだと無理があるような気がします。
もっとも、対応ソフトをきちんと明言してそれ以外のソフトの場合は動作保証しませんと
言うのであれば可能かなとも思います。
自分が使うためだけのツールだと言う話ならそこまで気にしなくてもいいと思うんですが。