We recommend using SendGrid Perl, our client library, available on GitHub, with full documentation.
# Using SendGrid's Perl Library # https://github.com/sendgrid/sendgrid-perl use Mail::SendGrid; use Mail::SendGrid::Transport::REST; my $sendgrid = Mail::SendGrid->new( from => "email@example.com", to => "firstname.lastname@example.org", subject => "Sending with SendGrid is Fun", html => "and easy to do anywhere, even with Perl" ); Mail::SendGrid::Transport::REST->new( username => $api_user, api_key => $api_key );
If you choose not to use SendGrid's client library you may use Perl's generic SMTP library.
The following code builds a MIME mail message demonstrating all the portions of the SMTP API protocol. To use this example, you will need to have the following perl modules installed:
#!/usr/bin/perl use strict; use MIME::Entity; use Net::SMTP; # from is your email address # to is who you are sending your email to # subject will be the subject line of your email my $from = 'email@example.com'; my $to = 'firstname.lastname@example.org'; my $subject = 'Example Perl Email'; # Create the MIME message that will be sent. Check out MIME::Entity on CPAN for more details my $mime = MIME::Entity->build(Type => 'multipart/alternative', Encoding => '-SUGGEST', From => $from, To => $to, Subject => $subject ); # Create the body of the message (a plain-text and an HTML version). # text is your plain-text email # html is your html version of the email # if the receiver is able to view html emails then only the html # email will be displayed my $text = "Hi!\nHow are you?\n"; my $html = <<EOM; <html> <head></head> <body> <p>Hi!<br> How are you?<br> </p> </body> </html> EOM # attach the body of the email $mime->attach(Type => 'text/plain', Encoding =>'-SUGGEST', Data => $text); $mime->attach(Type => 'text/html', Encoding =>'-SUGGEST', Data => $html); # attach a file my $my_file_txt = 'example.txt'; $mime->attach ( Path => $my_file_txt, Type => 'text/txt', Encoding => 'base64' ) or die "Error adding !\n"; # Login credentials my $username = 'email@example.com'; my $api_key = "your_api_key"; # Open a connection to the SendGrid mail server my $smtp = Net::SMTP->new('smtp.sendgrid.net', Port=> 587, Timeout => 20, Hello => "yourdomain.com"); # Authenticate $smtp->auth($username, $api_key); # Send the rest of the SMTP stuff to the server $smtp->mail($from); $smtp->to($to); $smtp->data($mime->stringify); $smtp->quit();
Let us know how we’re doing! Please rate this page:
Please note, we cannot resolve account and login issues reported on GitHub. Contact support for account assistance.
Thanks for helping us improve our docs!