■ [Q3] エディットビュー (3)
色々考えた結果、以下のようにしました。
- 扱えるのは本文パートのみ。本文パートとは以下のようにして決まる
- 元のメッセージ(テンプレートで生成したメッセージ)がマルチパートの場合
- 最初のインラインのテキストパート
- そのようなパートがない場合には、パートを新たに生成する(生成されたパートは、元々がmultipart/mixedだったら最初のパートになり、それ以外だった場合には全体をmultipart/mixedにしてネストさせる)
- 本体のパートがインラインのテキストでなかった場合には、multipart/mixedにして、最初のパートとしてテキストパートを生成する
- それ以外の場合には、メッセージ本体が本文パートになる
- ヘッダエディットビューでは、メッセージのヘッダ(Content-*は除く) + 本文パートのContent-*が編集できる
- メッセージを作成する時には、ヘッダのContent-*とボディを使って本文パートを作成する
- ヘッダエディットビューで指定されたContent-*以外のヘッダはそのままメッセージに反映される
- ヘッダエディットビューで、multipart/*を指定された時には、ボディをマルチパートだとみなし、メッセージを作成する
- メッセージ本体がマルチパートでなかったら、メッセージ本体をそのままマルチパートにする
- それ以外の場合、本文パートがあった場所に作成したマルチパートをネストさせる
基本的には本文パートしか扱えませんが、ちょっとマルチパートにしたい場合には、ヘッダエディットビューでContent-Typeをmultipart/*にするとマルチパートになります。
一応これで筋の通った形になったはずです。
あと問題になりそうなのは、インラインパートが複数あったときに、二番目以降のインラインパートが、どこにも表示されなくなってしまうことでしょうか。
ソフトウェアライブラリに登録してあるQMAIL2のリンク先が古いままだったのでリンク先とメールアドレスだけ修正したら、トップページに載ってしまい、バージョンアップしたと思われて大量のアクセスが。。。