in reply to Re: Sending emails in Perl
in thread Sending emails in Perl

Hmmmm.... Thanks for all the responses. So after looking at the link to the Mime with SSL I think that should work(?). I guess the line that indicates the attachment is: TmplOptions => \%options, So, out of curiosity, why isn't there a package that does this? I don't think what I am doing is so obscure (writing an email with an Excel spreadsheet attached). In any case, if you guys think it should work, I will figure it out with trial and error to I get it. Thanks, Ryan

Replies are listed 'Best First'.
Re^3: Sending emails in Perl
by zentara (Cardinal) on Feb 21, 2010 at 17:07 UTC
    why isn't there a package that does this?

    From my perspective, SSL mail is relatively recent, and still is not default in most mail setups. Also, I just handed you the link, containing the script. All you need to do, is change the MIME::Lite::TT::HTML; object to a simple MIME::Lite object..... it is not that complicated. Thats probably why there is no package for it.... the code is available for you to use as a simple script.

    I don't mean to offend, but this is a site for perl programming...... it's not the Tech Support dungeon in the basement of your corporation. So, if you can't figure out enough to swap the MIME objects, then hire a programmer. Google for "perl MIME::Lite attachment" and see all the code that has been written for free, for you to learn from.


    I'm not really a human, but I play one on earth.
    Old Perl Programmer Haiku
Re^3: Sending emails in Perl
by zentara (Cardinal) on Feb 22, 2010 at 12:57 UTC
    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";

    I'm not really a human, but I play one on earth.
    Old Perl Programmer Haiku