Subversion Repositories PEEPS

Rev

Blame | Last modification | View Log | RSS feed

package PEEPSMailer;

use strict;
use Exporter 'import';
use Net::SMTPS;
use Email::Simple;
#use Email::MessageID;

our @EXPORT = qw( EmailUser );

my $server   = "smtp.gmail.com";
my $port     = 587;
my $user     = 'peeps@wftda.com';
my $password = 'pmrpegrigryhavpe';

#warn "loaded PEEPSMailer...";

sub EmailUser {
        my $email = shift;
        my $subject = shift;
        my $body = shift;
        
        my $dev = $ENV{SERVER_NAME} eq "peeps.wftda.com" ? "" : '[DEV] ';
  
  if ($body !~ /^<p>/i) {
    use HTML::Tiny;
    my $h = HTML::Tiny->new( mode => 'html' );

    $body = $h->p (split "\n", $body);
  }
  
#warn "DEBUG: Emailing $email...";

## the rollercon mail server's cert doesn't match it's name. (the first block ignores any mismatching name)
#  IO::Socket::SSL::set_defaults (
#    SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_NONE,
#  );
#  IO::Socket::SSL::set_client_defaults(
#    SSL_verifycn_name => 'p3plmcpnl496538.prod.phx3.secureserver.net',
#  );
  IO::Socket::SSL::set_client_defaults(
    SSL_verifycn_name => 'smtp.gmail.com',
  );
  
  my $smtp = Net::SMTPS->new(
    $server,
    Hello => 'gmail.com',
    Port => $port,
    doSSL => 'starttls',
    Timeout => 15,
    Debug => 0
  );
  die "Could not connect to SMTP server!" unless $smtp;
  
        my $msg = Email::Simple->create(
          header => [
            To             => $email,
#           Bcc            => $user,
            From           => $user,
            Subject        => $dev.$subject,
#           'Message-Id'   => Email::MessageID->new->in_brackets,
            'Content-type' => 'text/html',
    ],
          body => $body,
        );

  $smtp->auth ($user, $password);
  $smtp->mail ($user);
  $smtp->to ($email);
#  $smtp->bcc ($user);
  $smtp->data ();
  $smtp->datasend ($msg->as_string);
  $smtp->quit;
        
}


1;