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('info@yorickpeterse.com', '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 \r\n for newlines, this can be changed as following:
Ramaze::Helper::Email..newline = "\n"
It’s important that this setting matches the settings of your SMTP server as otherwise you (usually) won’t be able to send any Emails.
Instance Method Summary (collapse)
-
- (Object) send_email(recipient, subject, message)
Sends an Email over SMTP.
Instance Method Details
- (Object) send_email(recipient, subject, message)
Sends an Email over SMTP.
76 77 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 |
# File 'lib/ramaze/helper/email.rb', line 76 def send_email(recipient, subject, ) sender = Email..sender_full || "#{Email.options.sender} <#{Email.options.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 |