class SendGmail::Client

Constants

DEFAULT_DATE
DEFAULT_MIME_VESION
SMTP_DOMAIN
SMTP_PORT

Public Class Methods

new(args = {}, &block) click to toggle source

creates a new Gmail client instance.

SendGmail::Client.new do |c|
  c.account = "your.address@gmail.com"
  c.password = "yourpassword"
end
# File lib/sendgmail.rb, line 33
def initialize(args = {}, &block)
  @config = Config.new do |c|
    c.account = args[:account]
    c.password = args[:password] 
    c.smtp_domain = args[:smtp_domain] ||= SMTP_DOMAIN
    c.smtp_port = args[:smtp_port] ||= SMTP_PORT
  end
  if block_given?
    block.call @config
  end
end

Public Instance Methods

create_mail(params ={}) click to toggle source
# File lib/sendgmail.rb, line 69
def create_mail(params ={})
  mail         = ::TMail::Mail.new
  mail.to      = params[:to]
  mail.from    = params[:from]
  mail.subject = params[:subject]
  mail.date    = params[:date] ||= DEFAULT_DATE
  mail.mime_version = params[:mime_version] ||= DEFAULT_MIME_VESION
  mail.set_content_type 'text', 'plain', {'charset'=>'iso-2022-jp'}
  mail.body    = params[:body]
  return mail
end
send(params = {}) click to toggle source

send your mail from Gmail.

client.send(
  :to   => 'foo.bar@gmail.com',
  :from => 'your.address@gmail.com',
  :subject => 'hello',
  :body    => 'world'
end
# File lib/sendgmail.rb, line 54
def send(params = {})
  mail = create_mail(params)

  ::Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE)
  ::Net::SMTP.start(
    @config.smtp_domain,
    @config.smtp_port,
    "localhost.localdomain",
    @config.account,
    @config.password,
    "plain"){ |smtp| 
    smtp.sendmail(mail.encoded, mail.from, mail.to) 
  }
end