Sha256: 068e44fa18c8e44f39b4929a96127b226ffde69bdeb314e25ab99de6f8b01b28

Contents?: true

Size: 1.51 KB

Versions: 16

Compression:

Stored size: 1.51 KB

Contents

require 'sanitize'
module Galakei::Email

  autoload :AuMailInterceptor, "galakei/email/au_mail_interceptor"

  GALAKEI_EMAIL_ADDRESS_PATTERNS = [
    /^.+@(.+\.)?pdx\.ne\.jp$/,
    /^.+@ezweb\.ne\.jp$/,
    /^.+@(?:softbank\.ne\.jp|disney\.ne\.jp)$/,
    /^.+@[dhtcrknsq]\.vodafone\.ne\.jp$/,
    /^.+@jp-[dhtcrknsq]\.ne\.jp$/,
    /^.+@emnet\.ne\.jp$/,
    /^.+@docomo\.ne\.jp$/ ]

  SANITIZE_OPTIONS = {
    :elements   => %w{font blink marquee br a div hr img},
    :attributes => {'a' => ['href'],
                    'font' => ['size','color'],
                    'marquee' => ['behaviour'],
                    'hr' => ['color'],
                    'div' => ['align'],
                    'img' => ['src'],
                    },
    :protocols  => {'a' => {'href' => ['http', 'https', 'mailto']}},
    :whitespace_elements => []
  }

  TAGS_TO_PROCESS = %w{h1 h2 h3 h4 h5 h6 p}.join(',')

  def self.galakei_email_address?(email)
    GALAKEI_EMAIL_ADDRESS_PATTERNS.any?{|p| p =~ email }
  end

  def self.to_galakei_email(html_email)
    doc = Nokogiri::HTML(html_email)
    doc.css(TAGS_TO_PROCESS).each do |node|
      node.name = "div"
      node.after("<br />")
    end
    #empty the <head>
    doc.css("head").each do |node|
      node.unlink
    end
    encoding = doc.meta_encoding || "UTF-8"
    res = "<html><head>"
    res << "<meta http-equiv=\"Content-type\" content=\"text/html;charset=#{encoding}\" />"
    res << "</head><body>"
    res << Sanitize.clean(doc.to_s, SANITIZE_OPTIONS)
    res << "</body></html>"
  end

end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
galakei-0.14.2 lib/galakei/email.rb
galakei-0.14.1 lib/galakei/email.rb
galakei-0.14.0 lib/galakei/email.rb
galakei-0.13.7 lib/galakei/email.rb
galakei-0.13.6 lib/galakei/email.rb
galakei-0.13.5 lib/galakei/email.rb
galakei-0.13.4 lib/galakei/email.rb
galakei-0.13.3 lib/galakei/email.rb
galakei-0.13.2 lib/galakei/email.rb
galakei-0.13.1 lib/galakei/email.rb
galakei-0.13.0 lib/galakei/email.rb
galakei-0.12.1 lib/galakei/email.rb
galakei-0.12.0 lib/galakei/email.rb
galakei-0.11.3 lib/galakei/email.rb
galakei-0.11.2 lib/galakei/email.rb
galakei-0.11.1 lib/galakei/email.rb