Sha256: 69da78b7b17b21e443dfa7ff1062ecbec15fbfc208a7a507e6039418abb3b350

Contents?: true

Size: 875 Bytes

Versions: 1

Compression:

Stored size: 875 Bytes

Contents

require 'mail'

module Messenger

  class Email

    def self.valid_url?(url)
      !!url.match(/^(mailto:)?[^@]+@.*$/)
    end

    # URL format:
    #     mailto:email@example.com
    #
    # Options:
    #     :email_from => Who the email is from
    #     :email_subject => The subject of the email
    def self.send(url, message, options={})
      raise URLError, "The URL provided is invalid" unless valid_url?(url)
      mail = Mail.new do
            from options[:email_from]
              to url.sub(/mailto:/, '')
         subject options[:email_subject]
            body message
      end
      mail.deliver!
      Result.new(true, nil)
    rescue Errno::ECONNREFUSED, Errno::EAFNOSUPPORT => e
      Result.new(false, e)
    end

    def self.obfuscate(url)
      raise URLError, "The URL provided is invalid" unless valid_url?(url)
      url
    end

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
messenger-0.2.0 lib/messenger/email.rb