The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Email::Send::SMTP::Gmail - Sends emails with attachments supporting Auth over TLS or SSL (for example: Google's SMTP).

SYNOPSIS

   use strict;
   use warnings;

   use Email::Send::SMTP::Gmail;

   my ($mail,$error)=Email::Send::SMTP::Gmail->new( -smtp=>'smtp.gmail.com',
                                                    -login=>'whateveraddress@gmail.com',
                                                    -pass=>'whatever_pass');

   print "session error: $error" unless ($email!=-1);

   $mail->send(-to=>'target@xxx.com', -subject=>'Hello!', -body=>'Just testing it',
               -attachments=>'full_path_to_file');

   $mail->bye;

DESCRIPTION

Simple module to send emails through Google's SMTP with or without attachments. Also supports regular Servers (with plain or none auth). Works with regular Gmail accounts as with Google Apps (your own domains). It supports basic functions such as CC, BCC, ReplyTo.

new(-login=>'', -pass=>'' [,-smtp=>'',layer=>'',-port=>'',-debug=>''])

It creates the object and opens a session with the SMTP.

smtp: defines SMTP server. Default value: smtp.gmail.com
layer: defines the secure layer to use. It could be 'tls', 'ssl' or 'none'. Default value: tls
port: defines the port to use. Default values are 25 for tls and 465 for ssl
timeout: defined Timeout for the connection. Default is 60 secs
auth: defines the authentication method: ANONYMOUS, CRAM-MD5, DIGEST-MD5, EXTERNAL, GSSAPI, LOGIN (default) and PLAIN. It's currently based on SASL::Perl module
debug: see the log information

Also supports SSL parameters as:

ssl_verify_mode: SSL_VERIFY_NONE | SSL_VERIFY_PEER
ssl_verify_path: SSL_ca_path if SSL_VERIFY_PEER
ssl_verify_file: SSL_ca_file if SSL_VERIFY_PEER
send(-from=>'', -to=>'', [-subject=>'', -cc=>'', -bcc=>'', -replyto=>'', -charset=>'', -body=>'', -attachments=>'', disposition=>'', -verbose=>'1'])

It composes and sends the email in one shot

to, cc, bcc: comma separated email addresses
contenttype: Content-Type for the body message. Examples are: text/plain (default), text/html, etc.
disposition: Set "inline" in sending embeeded attachments. For example using <body><img src="cid:logo.png"><br>Test with Image</body>
attachments: comma separated files with full path
attachmentslist: hashref $list, in format $list->[x]->{name} of files with full path. Example: $list->[0]->{file}='/full_path/file.pdf'
bye

Closes the SMTP session

Returns SMTP banner

Examples

Examples

    Send email composed in HTML using Gmail

          use strict;
          use warnings;
          use Email::Send::SMTP::Gmail;
          my ($mail,$error)=Email::Send::SMTP::Gmail->new( -smtp=>'smtp.gmail.com',
                                                           -login=>'whateveraddress@gmail.com',
                                                           -pass=>'whatever_pass');
    
          print "session error: $error" unless ($email!=-1);
    
          $mail->send(-to=>'target@xxx.com', -subject=>'Hello!',
                      -body=>'Just testing it<br>Bye!',-contenttype=>'text/html');
          $mail->bye;

    Send email using a SMTP server without secure layer and authentication

          use strict;
          use warnings;
          use Email::Send::SMTP::Gmail;
          my $mail=Email::Send::SMTP::Gmail->new( -smtp=>'my.smtp.server',-layer=>'none', -auth=>'none');
    
          $mail->send(-from=>'sender@yyy.com', -to=>'target@xxx.com', -subject=>'Hello!',
                      -body=>'Quick email');
          $mail->bye;

    Send email with attachments in comma separated format

          use strict;
          use warnings;
          use Email::Send::SMTP::Gmail;
          my $mail=Email::Send::SMTP::Gmail->new( -smtp=>'smtp.gmail.com',
                                                  -login=>'whateveraddress@gmail.com',
                                                  -pass=>'whatever_pass');
    
          $mail->send(-to=>'target@xxx.com', -subject=>'Hello!',
                      -body=>'Just testing it<br>Bye!',-contenttype=>'text/html',
                      -attachments=>'/full_path/file1.pdf,/full_path/file2.pdf');
          $mail->bye;

    Send email with attachments using hashref

          use strict;
          use warnings;
          use Email::Send::SMTP::Gmail;
          my $mail=Email::Send::SMTP::Gmail->new( -smtp=>'smtp.gmail.com',
                                                  -login=>'whateveraddress@gmail.com',
                                                  -pass=>'whatever_pass');
    
          my $att;
          $att->[0]->{file}='/full_path/file.pdf';
          $att->[1]->{file}='/full_path/file1.pdf';
    
          $mail->send(-to=>'target@xxx.com', -subject=>'Hello!',
                      -body=>'Just testing it<br>Bye!',-contenttype=>'text/html',
                      -attachmentlist=>$att);
          $mail->bye;

BUGS

Please report any bugs or feature requests to bug-email-send-smtp-gmail at rt.cpan.org or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Email-Send-SMTP-Gmail. You will automatically be notified of the progress on your bug as we make the changes.

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc Email::Send::SMTP::Gmail

You can also look for information at:

AUTHORS

Juan Jose 'Peco' San Martin, <peco at cpan.org>

Martin Vukovic, <mvukovic at microbotica.es>

Flaviano Tresoldi, <info at swwork.it>

Narcyz Knap, <narcyz at gumed.edu.pl>

Devin Ceartas, <devin@nacredata.com>

COPYRIGHT

Copyright 2015 Microbotica

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.