2004-05-18 [長年日記]

[Q3] エディットビュー (3)

色々考えた結果、以下のようにしました。

  • 扱えるのは本文パートのみ。本文パートとは以下のようにして決まる
    • 元のメッセージ(テンプレートで生成したメッセージ)がマルチパートの場合
      • 最初のインラインのテキストパート
      • そのようなパートがない場合には、パートを新たに生成する(生成されたパートは、元々がmultipart/mixedだったら最初のパートになり、それ以外だった場合には全体をmultipart/mixedにしてネストさせる)
    • 本体のパートがインラインのテキストでなかった場合には、multipart/mixedにして、最初のパートとしてテキストパートを生成する
    • それ以外の場合には、メッセージ本体が本文パートになる
  • ヘッダエディットビューでは、メッセージのヘッダ(Content-*は除く) + 本文パートのContent-*が編集できる
  • メッセージを作成する時には、ヘッダのContent-*とボディを使って本文パートを作成する
  • ヘッダエディットビューで指定されたContent-*以外のヘッダはそのままメッセージに反映される
  • ヘッダエディットビューで、multipart/*を指定された時には、ボディをマルチパートだとみなし、メッセージを作成する
    • メッセージ本体がマルチパートでなかったら、メッセージ本体をそのままマルチパートにする
    • それ以外の場合、本文パートがあった場所に作成したマルチパートをネストさせる

基本的には本文パートしか扱えませんが、ちょっとマルチパートにしたい場合には、ヘッダエディットビューでContent-Typeをmultipart/*にするとマルチパートになります*1

一応これで筋の通った形になったはずです。

あと問題になりそうなのは、インラインパートが複数あったときに、二番目以降のインラインパートが、どこにも表示されなくなってしまうことでしょうか*2

Windows CE FAN

ソフトウェアライブラリに登録してあるQMAIL2のリンク先が古いままだったのでリンク先とメールアドレスだけ修正したら、トップページに載ってしまい、バージョンアップしたと思われて大量のアクセスが。。。

*1  テンプレートで生成したメッセージが元々マルチパートの場合にはネストしてしまうので、少し予期しない形式になってしまいますが、レアケースだと思います

*2  あまりなさそうだし、テンプレート側でマルチパートを展開してしまえば良い気もするのでとりあえず放置します

[]