JSONデータベースにRFC822電子メールを挿入したいと考えています。JSONとしてRFC822電子メールをフォーマットする方法の提案はありますか?
JSON(添付ファイルを除く)として電子メールを構造化する「良い」方法を想像したいと思います。
メールの「良い」JSONレイアウトの例を知っている人はいますか?
おかげ
UPDATE:私は実際にJSON出力ではなく、変換を行うためのコードを見て探しています。
JSONデータベースにRFC822電子メールを挿入したいと考えています。JSONとしてRFC822電子メールをフォーマットする方法の提案はありますか?
JSON(添付ファイルを除く)として電子メールを構造化する「良い」方法を想像したいと思います。
メールの「良い」JSONレイアウトの例を知っている人はいますか?
おかげ
UPDATE:私は実際にJSON出力ではなく、変換を行うためのコードを見て探しています。
具体的には行われませんが、Mail gemには、YAMLへのメソッドのシリアライズ、およびYAMLからのメッセージの解析のためのメソッドが含まれています。これは、Hash
オブジェクトを作成し、そのオブジェクトをJSONにシリアル化することで行います。つまり、JSONに簡単に変換できるはずです。
これはprollyミケルのメール宝石のMessage#to_yaml
方法から、このような(っぽい)...
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
を見てしまいます。
どのような言語でも同様のアプローチをとることができます。 Rubyを使っているなら、これはあなたの既存のツール(Mail gem)にぴったりです。
私は実際に変換を行うコードではなくJSONの出力を見ていますが、あなたの応答に感謝します –
おそらく、ヘッダーとボディ部分をリストする何らかの変形が必要です。
{
headers: [
{ name: value },
{ name2: value}
],
body: [
{
mime: type,
content: stuff
},
{
},
.
.
.
{
}
]
}
なぜJSONですか?なぜBase-64は添付ファイルを含めて全部をエンコードするだけではないのですか?電子メールコンテンツがデータベースに挿入されると、そのコンテンツを検索可能にしたいと考えていますか? – aroth
はい、JSONデータベースに入っているので、フィールドにアクセスしたいと考えています。 –