Good news, everyone! We’ve open sourced an officially supported Perl library for SendGrid. We have used this library internally for some time and decided to release it for the community to use and improve. The readme on github has more information on how to get things going, but the code for sending a simple email and using some SendGrid features looks like this: use warnings; use strict; use Mail::SendGrid; use Mail::SendGrid::Transport::SMTP; my $sg = Mail::SendGrid->new( from => 'firstname.lastname@example.org', to => 'email@example.com', subject => 'Testing', text => "Some text http://sendgrid.com/\n", html => '<html><body>Some html <a href="http://sendgrid.com">SG</a> </body></html>' ); #disable click tracking filter for this request $sg->disableClickTracking(); #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 = Mail::SendGrid::Transport::SMTP->new( username => 'sendgrid_username', password => 'sendgrid_password' ); my $error = $trans->deliver($sg); die $error if ( $error ); Packaging this library and getting the tests to run was fun since I had never touched Perl before. There is tons of good material out there regarding Perl, as you would expect given its history and popularity. Like any language, there are several different ways to accomplish the same tasks, so I got caught up a bit on things like choosing which build approach I should use to package the module, but for the most part things were pretty straightforward. This module is not yet available on CPAN but we are working on making it available there. Of course, we welcome your suggestions and improvements and would love to see pull requests and issue reports on github. We know there is room for improvement and would love your help!