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
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.
Generated with the Darkfish Rdoc Generator 1.1.6.