Sha256: 8b5c40a3cc0a3f24981979c80ddaae7f010136a11809cfea324b56ae4ea00ffc

Contents?: true

Size: 1.82 KB

Versions: 101

Compression:

Stored size: 1.82 KB

Contents

class Knj::Mailobj
  def initialize(args = {})
    @args = {
      "smtp_host" => "localhost",
      "smtp_port" => 25,
      "smtp_user" => nil,
      "smtp_passwd" => nil,
      "smtp_domain" => ENV["HOSTNAME"]
    }
    
    if args.is_a?(Hash)
      args.each do |key, value|
        @args[key] = value
      end
    end
    
    self.send if @args["send"]
  end
  
  def html=(value)
    @args["html"] = value
  end
  
  def text=(value)
    @args["text"] = value
  end
  
  def from=(value)
    @args["from"] = value
  end
  
  def subject=(value)
    @args["subject"] = value
  end
  
  def to=(value)
    @args["to"] = value.untaint
  end
  
  def send
    raise "No email has been defined to send to." if !@args["to"]
    raise "No subject has been defined." if !@args["subject"]
    raise "No content has been defined." if !@args["text"] and !@args["html"]
    
    require "mail"
    
    mail = Mail.new
    mail.to = @args["to"]
    mail.subject = @args["subject"]
    mail.date = Time.now
    mail.from = @args["from"] if @args["from"]
    
    if @args["html"]
      tha_html = @args["html"]
      mail.html_part do
        content_type "text/html; charset=UTF-8"
        body tha_html
      end
    end
    
    if @args["text"]
      tha_text = @args["text"]
      mail.text_part do
        body tha_text
      end
    end
    
    smtp_start = Net::SMTP.new(@args["smtp_host"], @args["smtp_port"])
    smtp_start.enable_ssl if @args["ssl"]
    smtp_start.enable_starttls if @args["tls"]
    
    if !@args["smtp_domain"]
      if @args["smtp_host"]
        @args["smtp_domain"] = @args["smtp_host"]
      else
        raise "SMTP domain not given."
      end
    end
    
    smtp_start.start(@args["smtp_domain"], @args["smtp_user"], @args["smtp_passwd"]) do |smtp|
      smtp.send_message(mail.to_s, @args["from"], @args["to"])
    end
  end
end

Version data entries

101 entries across 101 versions & 1 rubygems

Version Path
knjrbfw-0.0.116 lib/knj/mailobj.rb
knjrbfw-0.0.115 lib/knj/mailobj.rb
knjrbfw-0.0.114 lib/knj/mailobj.rb
knjrbfw-0.0.113 lib/knj/mailobj.rb
knjrbfw-0.0.111 lib/knj/mailobj.rb
knjrbfw-0.0.110 lib/knj/mailobj.rb
knjrbfw-0.0.109 lib/knj/mailobj.rb
knjrbfw-0.0.108 lib/knj/mailobj.rb
knjrbfw-0.0.107 lib/knj/mailobj.rb
knjrbfw-0.0.105 lib/knj/mailobj.rb
knjrbfw-0.0.104 lib/knj/mailobj.rb
knjrbfw-0.0.103 lib/knj/mailobj.rb
knjrbfw-0.0.102 lib/knj/mailobj.rb
knjrbfw-0.0.101 lib/knj/mailobj.rb
knjrbfw-0.0.100 lib/knj/mailobj.rb
knjrbfw-0.0.99 lib/knj/mailobj.rb
knjrbfw-0.0.98 lib/knj/mailobj.rb
knjrbfw-0.0.97 lib/knj/mailobj.rb
knjrbfw-0.0.96 lib/knj/mailobj.rb
knjrbfw-0.0.95 lib/knj/mailobj.rb