Here is a simple script. It works with my local ISP, but GMAIL smtp seems to reject it, and that is not Perl's fault. Update: It seems if you send a test.doc , instead of .zip, GMAIL's smtp will accept it. Apparently to avoid viruses for windows users, they block .zip and .exe attachments. ???
#!/usr/bin/perl
use warnings;
use strict;
use Net::SMTP::SSL;
use MIME::Lite;
my $user = 'zentara@woohoo.org';
my $pass = 'whatdoyouguess';
#$server = 'your-smtp-server';
my $server = 'smtp.woohoo.com';
my $to = 'user@some.net';
my $from_name = 'zentara';
my $from_email = 'zentara@woohoo.org';
my $subject = 'smtp-ssl-auth test attach';
my $msg = MIME::Lite->new(
From => $from_email,
To => $to,
Subject =>'test message',
Type =>'TEXT',
Data =>'This is a test, i repeat only a test',
);
$msg->attach(Type =>'application/octet-stream',
Encoding =>'base64',
Path =>'./test.zip', #full path
);
# Type => 'application/msexcel',
# Path => $report,
# Filename => 'college_orders.xls',
# Encoding => 'base64'
my $smtps = Net::SMTP::SSL->new($server,
Port => 465,
DEBUG => 1,
) or warn "$!\n";
# this works in early 2010
defined ($smtps->auth($user, $pass))
or die "Can't authenticate: $!\n";
$smtps->mail($from_email);
$smtps->to( $to );
$smtps->data();
$smtps->datasend( $msg->as_string() );
$smtps->dataend();
$smtps->quit();
print "done\n";
|