Perl module for SendGrid's API
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


As of May 1, 2016, SendGrid will no longer support this library.

Please direct any questions to the Developer Experience team.

Build Status

#sendgrid-perl Send emails via SendGrid. Provides wrapper for custom SMTP API fields and allows for easy manipulation of filter/app settings.

Written by Tim Jenkins.

#License Licensed under the MIT License.

#Install We are currently working on getting this module on CPAN. In the meantime, you can install from the included archive.

git clone
cd sendgrid-perl
sudo cpanm SendGrid-1.3.tar.gz

You can also build the archive yourself:

perl Makefile.PL
make test
make dist

#Basic usage

For authentication, please use either your SendGrid credentials or an API key.

use warnings;
use strict;

use Email::SendGrid;
use Email::SendGrid::Transport::REST;

my $sg = Email::SendGrid->new( from => '',
                              to => '',
                              subject => 'Testing',
                              text => "Some text\n",
                              html => '<html><body>Some html
                                                  <a href="">SG</a>
                                       </body></html>' );

#disable click tracking filter for this request

#turn on the unsubscribe filter here with custom values
$sg->enableUnsubscribe( text => "Unsubscribe here: <% %>", html => "Unsubscribe <% here %>" );

#set a category
$sg->header->setCategory('first contact');

#add unique arguments
$sg->header->addUniqueIdentifier( customer => '12345', location => 'somewhere' );

my $trans = Email::SendGrid::Transport::REST->new( username => 'sendgrid_username', password => 'sendgrid_password' );

my $error = $trans->deliver($sg);
die $error if ( $error );

#Advanced Usage For more detailed information, please refer to the perldocs.