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の<img src=“”>を書き換えます。
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 © 2011 Dai Akatsuka, released under the MIT license