首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于如何将RFC822电子邮件格式化为JSON有什么建议吗?

对于如何将RFC822电子邮件格式化为JSON有什么建议吗?
EN

Stack Overflow用户
提问于 2011-07-27 13:53:40
回答 2查看 1.2K关注 0票数 4

我想插入RFC822电子邮件到一个JSON数据库。

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

有没有人知道一个“好的”电子邮件JSON布局的例子,或者有没有人能推荐一个?

谢谢

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

EN

回答 2

Stack Overflow用户

发布于 2011-07-27 14:15:03

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

这很可能看起来像这样的…

代码语言:javascript
复制
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   

来自mikel's Mail gem的Message#to_yaml方法。

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

票数 0
EN

Stack Overflow用户

发布于 2013-02-16 13:33:09

你可能想要一些列出头部和主体部分的东西的变体。

代码语言:javascript
复制
 {
       headers: [
          { name: value },
          { name2: value}
       ],
       body: [
           { 
               mime: type,
               content: stuff
           },
           {
           },
           .
           .
           .
           {
           }
       ]
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6839951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档