Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Now updated to work with Rails 3.
SendGrid is an awesome service that helps you send large amounts of email (bells and whistles included) without spending large amounts of money. This gem allows for painless integration between ActionMailer and the SendGrid SMTP API. The current scope of this gem is focused around setting configuration options for outgoing email (essentially, setting categories, filters and the settings that can accompany those filters). SendGrid's service allows for some other cool stuff (such as postback notification of unsubscribes, bounces, etc.), but those features are currently outside the scope of this gem.
Visit SendGrid to learn more.
First of all, you'll need the gem. It's at http://rubygems.org/gems/sendgrid. If you're using Bundler, just add the following to your Gemfile.
gem 'sendgrid'
Before you can do anything with the sendgrid gem, you'll need to create your very own SendGrid account. Go ahead and do so at http://sendgrid.com (there's even a FREE account option).
Next, update your application's SMTP settings to use SendGrid's servers (see SendGrid's getting started guide for instructions).
Example:
ActionMailer::Base.smtp_settings = {
:address => "smtp.sendgrid.net",
:port => 25,
:domain => "mysite.com",
:authentication => :plain,
:user_name => "sendgrd_username",
:password => "sendgrid_password"
}
If you do not already have an ActionMailer class up and running, then check out this guide.
add the following line within your mailer class:
include SendGrid
customize your sendgrid settings:
There are 2 main types of settings
You can set both global and per-email settings - the same syntax is used in either case. Here is an example of what typical usage may look like:
class MyMailer < ActionMailer::Base
include SendGrid
sendgrid_category :use_subject_lines
sendgrid_enable :ganalytics, :opentrack
sendgrid_unique_args :key1 => "value1", :key2 => "value2"
def welcome_message(user)
sendgrid_category "Welcome"
sendgrid_unique_args :key2 => "newvalue2", :key3 => "value3"
mail :to => user.email, :subject => "Welcome #{user.name} :-)"
end
def goodbye_message(user)
sendgrid_disable :ganalytics
mail :to => user.email, :subject => "Fare thee well :-("
end
end
Category settings can be any text you like and SendGrid's website will allow you to view email statistics per-category (very nice). There is also a custom global setting that will automatically use the subject line of each email as the sendgrid_category:
sendgrid_category :use_subject_lines
If you have any dynamic subject lines, you'll want to override this setting within the mailer method. Calling sendgrid_category from within one of your mailer methods will override this global setting. Similarly, calling sendgrid_enable/sendgrid_disable from within a mailer method will add or remove from any defaults that may have been set globally.
Here are a list of supported options for sendgrid_enable and sendgrid_disable:
For further explanation see SendGrid's wiki page on filters.
Custom parameters can be set using the sendgrid_unique_args methods. Any key/value pairs defined thusly will be included as parameters in SendGrid post backs. These are especially useful in cases where the recipient's email address is not unique or when multiple applications/environments are using the same SendGrid account.
There is a per-mailer-method setting that can be used to deliver campaigns to multiple (many) recipients in a single delivery/SMTP call. It is quite easy to build a robust mass-delivery system utilizing this feature, and it is quite difficult to deliver a large email campaign quickly without this feature. Note: While it may be worth asking yourself, a SendGrid engineer told me it's best to keep the number of recipients to <= 1,000 per delivery.
sendgrid_recipients ["email1@blah.com", "email2@blah.com", "email3@blah.com", ...]
One issue that arises when delivering multiple emails at once is custom content. Luckily, there is also a per-mailer-method setting that can be used to substitute custom content.
sendgrid_substitute "|subme|", ["sub text for 1st recipient", "sub text for 2nd recipient", "sub text for 3rd recipient", ...]
In this example, if |subme|
is in the body of your email SendGrid will automatically substitute it for the string corresponding the recipient being delivered to. NOTE: You should ensure that the length of the substitution array is equal to the length of the recipients array.
FAQs
Unknown package
We found that sendgrid demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.