### Home Classes Methods

### In Files

- lib/ramaze/helper/email.rb

### Methods

- #send_email

### Included Modules

- Innate::Optioned

### Class/Module Index

Quicksearch

- Ramaze
- Ramaze::App
- Ramaze::AppGraph
- Ramaze::Bin
- Ramaze::Bin::Console
- Ramaze::Bin::Create
- Ramaze::Bin::Helper
- Ramaze::Bin::Restart
- Ramaze::Bin::Runner
- Ramaze::Bin::Start
- Ramaze::Bin::Status
- Ramaze::Bin::Stop
- Ramaze::Cache
- Ramaze::Cache::LRU
- Ramaze::Cache::LocalMemCache
- Ramaze::Cache::MemCache
- Ramaze::Cache::Redis
- Ramaze::Cache::Sequel
- Ramaze::Controller
- Ramaze::CoreExtensions
- Ramaze::CoreExtensions::Array
- Ramaze::CoreExtensions::Binding
- Ramaze::CoreExtensions::Kernel
- Ramaze::CoreExtensions::Numeric
- Ramaze::CoreExtensions::Object
- Ramaze::CoreExtensions::Proc
- Ramaze::CoreExtensions::String
- Ramaze::Current
- Ramaze::DefaultController
- Ramaze::Dictionary
- Ramaze::Fiber
- Ramaze::Files
- Ramaze::GemSetup
- Ramaze::Gestalt
- Ramaze::Helper
- Ramaze::Helper::Auth
- Ramaze::Helper::Bench
- Ramaze::Helper::BlueForm
- Ramaze::Helper::BlueForm::Form
- Ramaze::Helper::CSRF
- Ramaze::Helper::Cache
- Ramaze::Helper::Cache::SingletonMethods
- Ramaze::Helper::Disqus
- Ramaze::Helper::Email
- Ramaze::Helper::Erector
- Ramaze::Helper::Flash
- Ramaze::Helper::Formatting
- Ramaze::Helper::Gestalt
- Ramaze::Helper::Gravatar
- Ramaze::Helper::Identity
- Ramaze::Helper::Layout
- Ramaze::Helper::Layout::SingletonMethods
- Ramaze::Helper::Link
- Ramaze::Helper::Localize
- Ramaze::Helper::Localize::Dictionary
- Ramaze::Helper::Localize::Parser
- Ramaze::Helper::Markaby
- Ramaze::Helper::Maruku
- Ramaze::Helper::Paginate
- Ramaze::Helper::Paginate::Paginator
- Ramaze::Helper::Paginate::Paginator::ArrayPager
- Ramaze::Helper::Paginate::Paginator::DataMapperPager
- Ramaze::Helper::Remarkably
- Ramaze::Helper::RequestAccessor
- Ramaze::Helper::SendFile
- Ramaze::Helper::SimpleCaptcha
- Ramaze::Helper::Stack
- Ramaze::Helper::Thread
- Ramaze::Helper::Ultraviolet
- Ramaze::Helper::Upload
- Ramaze::Helper::Upload::ClassMethods
- Ramaze::Helper::Upload::UploadedFile
- Ramaze::Helper::UserHelper
- Ramaze::Helper::UserHelper::Wrapper
- Ramaze::Helper::XHTML
- Ramaze::LRUHash
- Ramaze::Logger
- Ramaze::Logger::Analogger
- Ramaze::Logger::Growl
- Ramaze::Logger::Informer
- Ramaze::Logger::Knotify
- Ramaze::Logger::LogHub
- Ramaze::Logger::Logger
- Ramaze::Logger::RotatingInformer
- Ramaze::Logger::Syslog
- Ramaze::Logger::Xosd
- Ramaze::Logging
- Ramaze::MiddlewareCompiler
- Ramaze::Plugin
- Ramaze::Reloader
- Ramaze::Reloader::Hooks
- Ramaze::Reloader::WatchInotify
- Ramaze::Reloader::WatchStat
- Ramaze::Request
- Ramaze::Response
- Ramaze::SpecLogger
- Ramaze::Struct
- Ramaze::View
- Ramaze::View::Erector
- Ramaze::View::Erubis
- Ramaze::View::Ezamar
- Ramaze::View::Gestalt
- Ramaze::View::Haml
- Ramaze::View::Liquid
- Ramaze::View::Liquid::Tag
- Ramaze::View::Lokar
- Ramaze::View::Mustache
- Ramaze::View::Mustache::RamazeContext
- Ramaze::View::Nagoro
- Ramaze::View::Remarkably
- Ramaze::View::Sass
- Ramaze::View::Slippers
- Ramaze::View::Tagz
- Ramaze::View::Tagz::Methods
- Ramaze::View::Tenjin
- Nagoro
- Nagoro::Pipe
- Nagoro::Pipe::RenderPartial
- Bacon
- Bacon::PrettyOutput
- Erector
- Erector::Widget
- Rack
- Rack::RouteExceptions
- Tenjin
- Tenjin::Template
- BlankSlate
- Controller
- Fiber
- FiberError
- MainController
- Object
- OrderedSet
- Thread

No matching classes.

# Ramaze::Helper::Email

The Email helper can be used as a simple way of sending Emails from your application. In order to use this helper you first need to load it:

    class Comments < Ramaze::Controller
      helper :email
    end

Sending an Email can be done by calling the method send_email():

    send_email(
      'user@domain.tld',
      'Hello, world!',
      'Hello, this is an Email'
    )

Ramaze will log any errors in case the Email could not be sent so you don't have to worry about this.

## Options

This module can be configured using Innate::Optioned. Say you want to change the SMTP host you simply need to do the following:

    Ramaze::Helper::Email.options.host = 'mail.google.com'

Various other options are available, for a full list of these options run the following in an IRB session:

    puts Ramaze::Helper::Email.options

By default this helper uses "rn" for newlines, this can be changed as following:

    Ramaze::Helper::Email.options.newline = "\n"

@author Yorick Peterse @author Michael Fellinger @since 16-06-2011

### Public Instance Methods

send_email(recipient, subject, message) click to toggle source

Sends an Email over SMTP.

@example

    send_email('user@domain.tld', 'Hello, world!', 'Hello, this is an Email')

@author Yorick Peterse @author Michael Fellinger @since 16-06-2011 @param [String] recipient The Email address to send the Email to. @param [String] subject The subject of the Email. @param [String] message The body of the Email

    # File lib/ramaze/helper/email.rb, line 78
    def send_email(recipient, subject, message)
      sender  = Email.options.sender_full || "#{Email.options.sender} <#{Email.options.sender}>"
      subject = [Email.options.subject_prefix, subject].join(' ').strip
      id      = Email.options.generator.call

      # Generate the body of the Email
      email = [
        "From: #{sender}", "To: <#{recipient}>", "Date: #{Time.now.rfc2822}",
        "Subject: #{subject}", "Message-Id: #{id}", '', message
      ].join(Email.options.newline)

      # Send the Email
      email_options = []

      [:host, :port, :helo_domain, :username, :password, :auth_type].each do |k|
        email_options.push(Email.options[k])
      end

      begin
        Net::SMTP.start(*email_options) do |smtp|
          smtp.send_message(
            email,
            Email.options.sender,
            [recipient, *Email.options.bcc]
          )

          Ramaze::Log.info(
            "Email sent to #{recipient} with subject \"#{subject}\""
          )
        end
      rescue => e
        Ramaze::Log.error(
          "Failed to send an Email to #{recipient}: #{e.inspect}"
        )
      end
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.