インターネットホームページにあるフォームがあって
[名前] 田中 肇
[ふりがな] たなか はじめ
[年齢] 25
のようにメールが来る仕組みがあります。これをメーラーで受けて、MAPIRead関数で読んで、
データベース(ADO)に入れていくようなプログラムを作りました。
私はOFFICE付属のOutlookを使っており、一回一回警告が出るものの、プログラム自体は問題な
くメールを読んでいました。私の環境はWIN2000PROで開発はVC++6.0スタンダードです。
ところがクライアントはWin98でOutlook Expressを使っており、どうしても読むことができま
せん。それで調べてみるとMAPIRead関数で読み込んだときに、Outlookは普通の文字列になって
いるのですがOutlookExpressではMIMEのデコードが終わっていないJIS環境になっています。
こうした場合CまたはC++では共通のWindowsの関数などがあるのでしょうか。どのように対処さ
れているのでしょうか?
私はUnicode.orgにある変換表で処理していますが。
#各標準との変換表はObsolateされていますけどね……。
Shift_JISにしたいのであれば,nkfを使ったり自作すればいいでしょう。
英語ですが
http://library.n0i.net/programming/c/dews/ewtoc.html
翻訳が、株式会社技術評論社から
「インターネットのためのWinsockプログラミング」
という名前で出版されているみたいです。(\4660+税)
MINEの処理方法が載ってました。
詳しく見たわけではないのですが、本とほとんど同じ内容の
ようなので上記ページを見て質問の件に該当するか確認された
方が良いと思います。
12章から書かれています。
SJISに変換するだけであればそれほど手間では無いと思います。
C言語による最新アルゴリズム事典
http://www.vector.co.jp/soft/data/prog/se002453.html
などは便利です。
補足です。先ほどの本には
text/plainの単一部品メッセージの作成
multipart/mixedの複合メッセージの作成
MINEヘッダーの解析
可能な限り、すべてのテキストメッセージの複合・表示
(不明な型は添付ファイルとして扱う)
みたいな内容が書かれています。
当方の知識不足・本よりの抜粋なので正確ではないかも
しれません。
皆さんありがとうございました。
Windowsには備え付けの関数がなく、他の人は自作しているということがわかっただけでも、大
きな収穫です。