Skip to content
This repository was archived by the owner on Oct 22, 2024. It is now read-only.

Mail gem features

James McKinney edited this page Jul 5, 2013 · 2 revisions

Turn mail delivery on or off

message = Mail.new do
  from    'foo@example.com'
  to      'bar@example.com'
  subject 'test'
  body    'hello'
end

# Turn off mail delivery (on by default).
message.perform_deliveries = false

# The message will not be sent.
message.deliver

See the documentation for Mail::Message#perform_deliveries

Log mail delivery

class MailLogger
  def deliver_mail(mail)
    # Perform logging, or whatever else you want to do.
    puts mail.inspect
    # Deliver the message as usual.
    yield
  end
end

logger = MailLogger.new

message = Mail.new do
  from    'foo@example.com'
  to      'bar@example.com'
  subject 'test'
  body    'hello'
end

# Set a custom handler for mail delivery.
message.delivery_handler = logger

# The message will be logged and sent.
message.deliver

See the documentation for Mail::Message#Message:delivery_handler

Clone this wiki locally