I tried Email::Send::SMTP::Gmail from Ubuntu 16.04, and it worked after some tweaking. First I needed to change the layer from the default tls to ssl, then the port from the default 25 to 465. After that, I needed to change my gmail account settings to allow access for less secure apps. See this post
http://stackoverflow.com/a/33244509/2173773 for more information.
use strict;
use warnings;
use Email::Send::SMTP::Gmail;
my ($mail,$error) = Email::Send::SMTP::Gmail->new(
-layer =>'ssl',
-port =>'465',
-smtp =>'smtp.gmail.com',
-login =>'hakon.hagland@gmail.com',
-pass =>'?????'
);
die "session error: $error" if $mail ==-1;
$mail->send(
-to =>'hakon.hagland@gmail.com',
-subject =>'Hello!',
-body =>'Just testing it',
-attachments=>'test.pdf'
);
$mail->bye;