2006.01.30
post2blogと携帯電話・・・(Movabletype)
昨日は、かなり強引なやり方でhtml形式でしか送れない携帯電話からのメールをpost2blogに引き渡すためのフィルターを書いたが、今朝目覚めると、なんともゴリゴリのフィルターで気になった. しかもhtml形式のメールの受け口とテキスト形式のメールの受け口を分けるのもどうかと思うようになった。
そこで、?単純なテキスト形式でテキストのみ、?テキスト形式だが画像添付あり、?html形式のメールで文章のみ、?html形式のメールで画像添付有りの4つのケースに分けてそれぞれの構成要素を再構築してpost2blogに引き継ぐフィルターを書いた。
若干解説すると、?、?のテキスト形式の場合は、そのままの状態でpost2blogに引き渡す。
?の場合は文章部分がプレインとhtmlにサブパートとして区切られているので、html部分を捨てプレインテキスト部分をテキスト形式の場合と同じになるよう、サブパートの区切り文字列の定義部分を取り除いた後に、サブの区切文字列をメインの区切り文字列(Headerで定義されたboundary)に置き換えた。
?も?と同じように、文章部分のhtml部を取り除き、画像添付部分はそのまま後ろに付けるようにしたものである。
問題は携帯電話の機種により送信ヘッダーが異なるのではと予想される事であるが、私のvodafone 902Tではヘッダーに
Content-Type: multipart/related;Type="multipart/alternative"; boundary="MMSPart_001_c3c794f7_a927_4812_b13e_b3365844b066"
とあり、multipart/relatedで添付ファイルがあるとの判断をするようにした。 普通のメーラーではmultipart/mixedである。
この辺のところは、携帯電話の機種によって異なると思われるので、個々に合わせて変更の必要があるのだろう。 ともかく文末に新しいフィルターのコードを載せて置く。
使い方は前回のと同じで /etc/aliasesもしくはホームディレクトリーの .forwardと名の付けたファイルに記述して使用する。
/etc/aliasesの場合 : inputaddress: "| /usr/local/bin/html2text | /usr/local/bin/post2blog" .forwardの場合 : "| /usr/local/bin/html2text | /usr/local/bin/post2blog"
これで、一応携帯電話からもOutlook Expressでhtml形式で複数の画像を添付してもうまく動いているようだ。
htmlからtext形式へのコンバート : html2text
ほりけんさん
変換機能OFFは全く知りませんでした。
まぁー、やっちゃたから良いかと・・・
PCからのメールでもhtml形式はダメと言っても間違って送ってくる人も無くなりませんので
Posted at 2006.02.15 12:57 AM by Naka