RFC822 メールを JSON データベースに挿入したいと考えています。
電子メールを JSON (添付ファイルを除く) として構造化する「良い」方法を想定したいと考えています。
電子メールの「良い」JSON レイアウトの例を知っている人はいますか?
ありがとう
更新:実際には、変換を行うコードではなく、JSON 出力を確認したいと考えています。
おそらく、ヘッダーと本体部分をリストする何かのバリアントが必要になるでしょう。
{
headers: [
{ name: value },
{ name2: value}
],
body: [
{
mime: type,
content: stuff
},
{
},
.
.
.
{
}
]
}
具体的には行いませんが、Mail gemにはメソッドを YAML にシリアライズするためのメソッドと、YAML からのメッセージを解析するためのメソッドが含まれています。これは、オブジェクトを構築し、Hash
そのオブジェクトを JSON にシリアル化することによって行われます。これは、JSON への変換が容易であることも意味します。
これはおそらく次のようになります…</p>
require 'json'
module Mail
class Message
def to_json(opts = {})
hash = {}
hash['headers'] = {}
header.fields.each do |field|
hash['headers'][field.name] = field.value
end
hash['delivery_handler'] = delivery_handler.to_s if delivery_handler
hash['transport_encoding'] = transport_encoding.to_s
special_variables = [:@header, :@delivery_handler, :@transport_encoding]
(instance_variables.map(&:to_sym) - special_variables).each do |var|
hash[var.to_s] = instance_variable_get(var)
end
hash.to_json(opts)
end
end
end
Message#to_yaml
mikel's Mail gemのメソッドより。
どの言語でも同様のアプローチを取ることができます。ただし、Ruby を使用している場合、これは既存のツール (Mail gem) に最適です。