#!/usr/bin/perl use warnings; use strict; use Net::SMTP::SSL; # Implements the same API as Net::SMTP, but uses IO::Socket::SSL for its # network operations. Due to the nature of "Net::SMTP"'s "new" method, it # is not overridden to make use of a default port for the SMTPS service. # Perhaps future versions will be smart like that. Port 465 is usually # what you want, and it's not a pain to specify that. my $user = 'me@gmail.com'; my $pass = 'yeah_for_google'; #$server = 'your-smtp-server'; my $server = 'smtp.gmail.com'; my $to = 'me@gmail.com'; my $from_email = 'me@gmail.com'; my $subject = 'smtp-ssl-auth test'; my $smtps = Net::SMTP::SSL->new($server, Port => 465, DEBUG => 1, ) or warn "$!\n"; # I hust lucked out and this worked defined ($smtps->auth($user, $pass)) or die "Can't authenticate: $!\n"; $smtps->mail("$from_email\n"); $smtps->to("$to\n"); $smtps->data(); $smtps->datasend("From: $user\n"); $smtps->datasend("To: $to\n"); $smtps->datasend("Subject: $subject\n"); $smtps->datasend("Reply-To: $from_email\n"); $smtps->datasend("MIME-Version: 1.0\n"); $smtps->datasend("Content-Type: text/plain\n"); $smtps->datasend("\n"); $smtps->datasend("This will be the body of the message.\n"); $smtps->datasend("\n--\nVery Official Looking .sig here\n"); $smtps->datasend("\n"); $smtps->dataend(); #$smtps->quit(); print "done\n"; #You can alternatively just put everything in the argument to $smtp->data(), #and forget about datasend() and dataend();