Skip to content

Official integration library for using Rails and ActionMailer with the Postmark HTTP API

License

Notifications You must be signed in to change notification settings

ActiveCampaign/postmark-rails

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

<img src=“travis-ci.org/wildbit/postmark-rails.png?branch=master” alt=“Build Status” /> <img src=“” />

The Postmark Rails Gem is a drop-in plug-in for ActionMailer to send emails via Postmark, an email delivery service for web apps. The gem has been created for fast implementation and fully supports all of Postmark’s features.

  • lower than 2.3: could work, but not tested

  • 2.3 and higher

  • 3.0

  • 4.0

sudo gem install postmark-rails
  • “postmark” gem version 0.9 and higher is required.

  • You will also need a Postmark account, server and sender signature set up to use it. To get an account, sign up at postmarkapp.com.

Add this to your Gemfile: (change version numbers if needed)

gem 'postmark-rails', '0.4.2'

Don’t forget to run “bundle install” command every time you change something in the Gemfile.

Add this to your config/application.rb:

config.action_mailer.delivery_method   = :postmark
config.action_mailer.postmark_settings = { :api_key => "your-api-key" }

Add this to config/environment.rb:

Rails::Initializer.run do |config|

  ...

  config.gem 'postmark-rails'
  require    'postmark-rails'

  config.action_mailer.postmark_api_key = "your-api-key"
  config.action_mailer.delivery_method  = :postmark

  ...

end

For API details, refer to the developer documentation at developer.postmarkapp.com.

You can use a tag to categorize outgoing messages and attach application-specific information. Tagging the different types of email that you send lets you review statistics and bounce reports separately. Read more at developer.postmarkapp.com/developer-build.html#message-format.

class TestMailer < ActionMailer::Base

  def tagged_message
    mail(
      :subject => 'hello',
      :to      => '[email protected]',
      :from    => '[email protected]',
      :tag     => 'my-tag'
    )
  end

end
class SuperMailer < ActionMailer::Base

  def email
    from       "[email protected]"
    subject    "Some marvelous email message"
    recipients "[email protected]"
    tag        "my-another-tag"
  end

end

You can also send file attachments with Postmark. Read our Developer docs for additional information: developer.postmarkapp.com/developer-build.html#attachments.

The Postmark gem is compatible with [ActionMailer attachments API](api.rubyonrails.org/classes/ActionMailer/Base.html#method-i-attachments).

The legacy #postmark_attachments method is no longer supported on Rails 3.2.13 and above.

class TestMailer < ActionMailer::Base

  def message_with_attachment
    attachment['42.jpg'] = File.read("/path/to/file")
    mail(
      :subject              => 'hello',
      :to                   => '[email protected]',
      :from                 => '[email protected]'
    )
  end

end
class SuperMailer < ActionMailer::Base

  def email
    from                 "[email protected]"
    subject              "Some marvelous email message"
    recipients           "[email protected]"
    postmark_attachments [File.open("/path/to/file")]
  end

end

You can pass either an array of File objects or a single object. Postmark will detect the file name automatically and send an attachment with the “application/octet-stream” content type. If you want more control on how attachments get formatted, you can pass Hash objects, which contain the custom settings such as file name or content-type. Here is an example:

#
# Don't forget to read your file and base64-encode it,
# before assigning it to "Content".
#
message.postmark_attachments = {
  "Name"        => "fancy-file-name.jpg",
  "Content"     => [ IO.read("path/to/file") ].pack("m"),
  "ContentType" => "image/jpeg"
}
  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so we don’t break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history.

  • Send a pull request. Bonus points for topic branches.

  • Artem Chistyakov

  • Petyo Ivanov

  • Ilya Sabanin

  • Hristo Deshev

  • Randy Schmidt

  • Chris Williams

  • Nicolás Sanguinetti

  • Laust Rud Jacobsen (rud)

Copyright © 2010 Wildbit LLC. See LICENSE for details.

About

Official integration library for using Rails and ActionMailer with the Postmark HTTP API

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 22

Languages