Methods

Included Modules

Class Index [+]

Quicksearch

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 ``r\n`` 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
 78:       def send_email(recipient, subject, message)
 79:         sender  = Email.options.sender_full || "#{Email.options.sender} <#{Email.options.sender}>"
 80:         subject = [Email.options.subject_prefix, subject].join(' ').strip
 81:         id      = Email.options.generator.call
 82: 
 83:         # Generate the body of the Email
 84:         email = [
 85:           "From: #{sender}", "To: <#{recipient}>", "Date: #{Time.now.rfc2822}",
 86:           "Subject: #{subject}", "Message-Id: #{id}", '', message
 87:         ].join(Email.options.newline)
 88: 
 89:         # Send the Email
 90:         email_options = []
 91: 
 92:         [:host, :port, :helo_domain, :username, :password, :auth_type].each do |k|
 93:           email_options.push(Email.options[k])
 94:         end
 95: 
 96:         begin
 97:           Net::SMTP.start(*email_options) do |smtp|
 98:             smtp.send_message(
 99:               email,
100:               Email.options.sender,
101:               [recipient, *Email.options.bcc]
102:             )
103: 
104:             Ramaze::Log.info(
105:               "Email sent to #{recipient} with subject \"#{subject}\""
106:             )
107:           end
108:         rescue => e
109:           Ramaze::Log.error(
110:             "Failed to send an Email to #{recipient}: #{e.inspect}"
111:           )
112:         end
113:       end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.