4

我想将 RFC822 电子邮件插入 JSON 数据库。

我想设想一种将电子邮件构造为 JSON(不包括附件)的“好”方式。

有谁知道电子邮件的“好”JSON布局示例,或者有人可以推荐一个吗?

谢谢

更新:我实际上希望查看 JSON 输出而不是进行转换的代码。

4

2 回答 2

0

没有专门做,但Mail gem包含一个将方法序列化为 YAML 的方法,也用于解析来自 YAML 的消息。它通过构造一个Hash对象然后将该对象序列化为 JSON 来实现这一点。这也意味着它应该很容易转换为 JSON。

这看起来像(ish)这样......</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麦克尔的邮件宝石的方法。

您可以在任何语言中采用类似的方法。但是,如果您使用的是 Ruby,这将非常适合您现有的工具(Mail gem)。

于 2011-07-27T06:15:02.933 回答
0

您可能需要一些列出标题和正文部分的变体。

 {
       headers: [
          { name: value },
          { name2: value}
       ],
       body: [
           { 
               mime: type,
               content: stuff
           },
           {
           },
           .
           .
           .
           {
           }
       ]
    }
于 2013-02-16T05:33:08.630 回答