Module: Ramaze::Helper::Email
- Includes:
- Innate::Optioned
- Defined in:
- lib/ramaze/helper/email.rb
Overview
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(
'[email protected]',
'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..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.
By default this helper uses “rn“ for newlines, this can be changed as following:
Ramaze::Helper::Email..newline = "\n"
Instance Method Summary collapse
-
#send_email(recipient, subject, message) ⇒ Object
Sends an Email over SMTP.
Instance Method Details
#send_email(recipient, subject, message) ⇒ Object
Sends an Email over SMTP.
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/ramaze/helper/email.rb', line 78 def send_email(recipient, subject, ) sender = Email..sender_full || "#{Email..sender} <#{Email..sender}>" subject = [Email..subject_prefix, subject].join(' ').strip id = Email..generator.call # Generate the body of the Email email = [ "From: #{sender}", "To: <#{recipient}>", "Date: #{Time.now.rfc2822}", "Subject: #{subject}", "Message-Id: #{id}", '', ].join(Email..newline) # Send the Email = [] [:host, :port, :helo_domain, :username, :password, :auth_type].each do |k| .push(Email.[k]) end begin Net::SMTP.start(*) do |smtp| smtp.( email, Email..sender, [recipient, *Email..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 |