SendGrid SMTP API gem for Rails <img src=“https://secure.travis-ci.org/kylejginavan/sendgrid_smtpapi.png”/>
SendGrid SMTP API 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)
standard_smtp(enabled = false)
Rails 3 configuration
In your Gemfile:
gem 'sendgrid_smtpapi'
In your config/environment.rb:
ActionMailer::Base.register_interceptor(SendGridSmtpApi::MailInterceptor)
ActionMailer::Base.smtp_settings = {
:address => 'smtp.sendgrid.net',
:port => '25',
:domain => 'example.com',
:authentication => :plain,
:user_name => '[email protected]',
:password => 'your password'
}
Usage examples
Adding multiple recipients:
class Mailer < ActionMailer::Base
default :from => '[email protected]',
:subject => 'An email sent via SendGridSmtpApi'
def email_with_multiple_recipients
mail :to => %w([email protected] [email protected])
end
end
Adding substitution vars
Mailer class definition:
class Mailer < ActionMailer::Base
default :from => '[email protected]',
:subject => 'An email sent via SendGridSmtpApi with substitutions'
def email_with_substitutions
substitute '-user_name-', %w(User1 User2)
mail :to => %w([email protected] [email protected]), :body => "Hello, -user_name-!"
end
end
Adding category
Mailer class definition:
class Mailer < ActionMailer::Base
default :from => '[email protected]',
:subject => 'An email sent via SendGridSmtpApi with substitutions'
def email_with_category
category 'SendGridSmtpApiRocks'
mail :to => '[email protected]'
end
end
Apps (formerly called Filters)
Apps can be applied to any of your email messages and can be configured through SendGridSmtpApi 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 => '[email protected]',
:subject => 'An email sent via SendGridSmtpApi'
def email_with_open_tracking_enabled
open_tracking true
mail :to => '[email protected]'
end
end
Use Standard SMTP
if you want to customize the header for sendgrids api but you need keep standard SMTP see below:
class Mailer < ActionMailer::Base
default :from => '[email protected]',
:subject => 'An email sent via SendGridSmtpApi'
def email_standard_smtp
standard_smtp true
open_tracking true
mail :to => '[email protected]'
end
end
CONTRIBUTORS:
-
Kyle J. Ginavan.
-
Mauro Torres - github.com/chebyte