sendgrid-rails

3.1.0last stable release 9 years ago
Complexity Score
Low
Open Issues
11
Dependent Projects
0
Weekly Downloadsglobal
138

License

  • MIT
    • Yesattribution
    • Permissivelinking
    • Permissivedistribution
    • Permissivemodification
    • Nopatent grant
    • Yesprivate use
    • Permissivesublicensing
    • Notrademark grant

Downloads

Readme

= SendGrid gem for Rails 3 {}[http://travis-ci.org/PavelTyk/sendgrid-rails]

SendGrid gem provides ActionMailer::Base extensions to use SendGrid API features in you emails. It extends ActionMailer with next methods:

substitute(patters_string, array_of_substitunion_strings)
uniq_args(hash_of_unique_args)
category(category_string)
open_tracking(enabled = true)
add_filter_setting(filter_name, setting_name, value)

== Rails 3 configuration

In your Gemfile:

gem 'sendgrid-rails', '~> 2.0'

In config/initializers/mail.rb:

ActionMailer::Base.register_interceptor(SendGrid::MailInterceptor)

ActionMailer::Base.smtp_settings = {
  :address => 'smtp.sendgrid.net',
  :port => '25',
  :domain => 'example.com',
  :authentication => :plain,
  :user_name => 'login@example.com',
  :password => 'your password'
}

If you use Heroku, here what the mailer initializer may look like:

ActionMailer::Base.register_interceptor(SendGrid::MailInterceptor)

if ENV['SENDGRID_USERNAME'] && ENV['SENDGRID_PASSWORD']
  ActionMailer::Base.smtp_settings = {
    :address        => 'smtp.sendgrid.net',
    :port           => '465',
    :authentication => :plain,
    :user_name      => ENV['SENDGRID_USERNAME'],
    :password       => ENV['SENDGRID_PASSWORD'],
    :domain         => 'heroku.com',
    :enable_starttls_auto => true,
    :ssl => true
  }
  ActionMailer::Base.delivery_method = :smtp
end

=== Overriding default recipient in standard SMTP header

Dummy recipient email used in sent email’s “To” header and seen in received email’s Received header. By default set to ‘dummy@email.com‘

In config/initializers/mail.rb:

SendGrid.configure do |config|
  config.dummy_recipient = 'noreply@example.com'
end

== Usage examples

=== Adding multiple recipients:

class Mailer < ActionMailer::Base
  default :from => 'no-reply@example.com',
          :subject => 'An email sent via SendGrid'

  def email_with_multiple_recipients
    mail :to => %w(email1@email.com email2@email.com)
  end
end

=== Adding substitution vars

Mailer class definition:

class Mailer < ActionMailer::Base
  default :from => 'no-reply@example.com',
          :subject => 'An email sent via SendGrid with substitutions'

  def email_with_substitutions
    substitute '-user_name-', %w(User1 User2)

    mail :to => %w(email1@email.com email2@email.com), :body => "Hello, -user_name-!"
  end
end

=== Adding category

Mailer class definition:

class Mailer < ActionMailer::Base
  default :from => 'no-reply@example.com',
          :subject => 'An email sent via SendGrid with substitutions'

  def email_with_category
    category 'SendGridRocks'
    mail :to => 'email1@email.com'
  end
end

== Apps (formerly called Filters)

Apps can be applied to any of your email messages and can be configured through SendGrid gem.

=== Open Tracking

Add an invisible image at the end of the email to track e-mail opens. If the email recipient has images enabled on the email client, a request to server for the invisible image is executed and an open is logged.

class Mailer < ActionMailer::Base
  default :from => 'no-reply@example.com',
          :subject => 'An email sent via SendGrid'

  def email_with_open_tracking_enabled
    open_tracking true
    mail :to => 'email@email.com'
  end
end

== Change log

v3.1.0

  • Introduced template_id feature

v3.0.0

  • Depricated method :alias_method_chain has been replaced with Module#prepend Ruby 2.0 feature
  • Requires Ruby 2.0+

v2.0.5

  • Introduced deliver_at feature.

v2.0.4

  • CC and BCC are copied to SendGrid XSMTP-API header

v2.0.3

  • Ability to change “dummy_recipient” in config

v2.0.2

  • ApiHeader#to_json wraps array items with spaces

v2.0.1

  • Standard SMTP To attribute set to ‘dummy@email.com‘ after recipients added to X-SMTPAPI header

v2.0

  • Using mail interceptor
  • ActionMailer::Base#add_recipients - removed
  • Standard SMTP To attribute get nullified after recipients added to X-SMTPAPI header

Dependencies

CVE IssuesActive
0
Scorecards Score
2.90
Test Coverage
No Data
Follows Semver
No
Github Stars
73
Dependenciestotal
3
DependenciesOutdated
1
DependenciesDeprecated
0
Threat Modelling
No
Repo Audits
No

Learn how to distribute sendgrid-rails in your own private RubyGems registry

gem install sendgrid-rails
Processing...
Done

11 Releases

RubyGems on Cloudsmith

Getting started with RubyGems on Cloudsmith is fast and easy.