https://github.com/kickstarter/mail-x_smtpapi
Adds SendGrid X-SMTPAPI header support to Mail
https://github.com/kickstarter/mail-x_smtpapi
Last synced: over 1 year ago
JSON representation
Adds SendGrid X-SMTPAPI header support to Mail
- Host: GitHub
- URL: https://github.com/kickstarter/mail-x_smtpapi
- Owner: kickstarter
- License: mit
- Created: 2014-12-09T00:27:06.000Z (over 11 years ago)
- Default Branch: main
- Last Pushed: 2024-12-16T15:40:20.000Z (over 1 year ago)
- Last Synced: 2025-03-30T21:11:18.321Z (over 1 year ago)
- Language: Ruby
- Size: 28.3 KB
- Stars: 22
- Watchers: 122
- Forks: 6
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Mail::X::Smtpapi
[](http://badge.fury.io/rb/mail-x_smtpapi) [](https://circleci.com/gh/kickstarter/mail-x_smtpapi/tree/master) [](https://codeclimate.com/github/kickstarter/mail-x_smtpapi)
Integrates support for SendGrid's X-SMTPAPI field into the [Mail](https://github.com/mikel/mail) gem.
Please refer to [SendGrid docs](https://sendgrid.com/docs/API_Reference/SMTP_API/index.html) for ideas of what you can do with the X-SMTPAPI header!
## Installation
Add this line to your application's Gemfile:
```ruby
gem 'mail-x_smtpapi'
```
And then execute:
$ bundle
Or install it yourself as:
$ gem install mail-x_smtpapi
## Usage
Write into the X-SMTPAPI header from anywhere with access to the `mail` object.
### Example: Rails Mailer
Adapting the [Rails Guide example](http://guides.rubyonrails.org/v4.0.8/action_mailer_basics.html#edit-the-mailer):
```ruby
class UserMailer < ActionMailer::Base
def welcome(user)
@user = user
mail.smtpapi.category = 'welcome'
mail.smtpapi.unique_args['user_id'] = @user.id
mail(to: @user.email, subject: 'Welcome to My Awesome Site')
end
end
```
### Example: Mail Interceptor
Adapting the [Rails Guide example](http://guides.rubyonrails.org/v4.0.8/action_mailer_basics.html#intercepting-emails):
```ruby
class SandboxEmailInterceptor
def self.delivering_email(message)
message.smtpapi.unique_args['original'] = message.to
message.to = ['sandbox@example.com']
end
end
```
### Example: Template Helper
```ruby
module MailerABHelper
def show_variant?(name)
variant = rand(2) == 0 ? 'main' : 'alternate'
mail.smtpapi.unique_args["#{name}_variant"] = variant
return variant == 'alternate'
end
end
```
## Contributing
1. Fork it ( https://github.com/kickstarter/mail-x_smtpapi/fork )
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request