= DecorationMailとは
携帯電話で作成されたデコレーションメール(デコメール)をRubyで扱いやすくするためのライブラリです。
今のところ受信したメールをパースするのみでデコメールの新規作成は出来ません。そのうち実装するかもしれません。。。
== 特徴
- Rails3から採用されたActionMailerのバックエンド、Mailライブラリを少し拡張して利用します。
- デコメールのHTMLをXHTMLとインラインCSSに変換します。
- デコメールのHTMLからHTMLタグ、HEADタグ、BODYタグが削除されて本文のみ取得出来ます。
- デコメール画像のURLをContent-IDから自動でファイル名に置き換えます(変更可能)。
== インストール
通常
gem install decoration_mail
Rails3 ( bundler )
gem 'decoration_mail'
== 使用例
Rails3でも採用されているMailライブラリのMail::Messageを拡張しています。
decorationメソッドで本ライブラリの機能を呼び出す事が出来ます。
=== 基本的な使い方
require 'mail
require 'decoration_mail'
@mail = Mail.read('/path/to/foobar.eml')
@deco = @mail.decoration
@html = @deco.save do |image|
File.open("/path/to/#{image.filename}", "wb") {|f| f.write(image.read)}
end
puts @html # => "<div ...."
=== 画像のURLを指定する
image.pathにURIを代入することで、出力されるHTMLのを書き換えます。
MogileFSなどのストレージを利用する場合に使用すると便利でしょう。
@html = @deco.save do |image|
File.open("/path/to/#{image.filename}", "wb") {|f| f.write(image.read)}
image.path = "http://xxxxxx/#{image.filename}"
end
=== 本文(デコレーション)で使用されていない添付画像をHTMLに追加する
本文上部に追加
@html = @deco.save(:other_images => :top) do |image|
.....
本文下部に追加
@html = @deco.save(:other_images => :bottom) do |image|
=== コピーライト
Copyright (C) 2011 Dai Akatsuka, released under the MIT license