sending email with perl

Garrett Cooper youshi10 at u.washington.edu
Sun May 6 19:29:07 UTC 2007


Jeffrey Goldberg wrote:
> On May 6, 2007, at 10:48 AM, Olivier Regnier wrote:
> 
>> Hello,
>>
>> I written a small script in perl to send email.
>>
>> Here is the code:
>>
>> #!/usr/bin/perl -w
>> use strict;
>> use warnings;
>> use MIME::Lite;
>>
>> my $msg = new MIME::Lite
>> From =>'me at domain.tld',
>> To =>'me at domain.tld',
>> Subject =>'test',
>> Type =>'TEXT',
>> Data =>'Hello this is a test';
>> $msg -> send;
>>
>> I have a .mailrc file :
>> set sendmail="/root/scripts/nbsmtp.sh"
> 
> Perl isn't going to know or care about what is in your .mailrc file.
> 
> You should replace
> 
>   $msg -> send
> 
> with something like
> 
>   $msg -> send || die "Could not send: $!"
> 
> to at least get some idea of where the send attempt is failing
> 
> 
>> I installed a small mta nbsmtp and i use a shell script called 
>> nbsmtp.sh with this line :
>> /usr/local/bin/nbsmtp -f me at domain.tld -h ssl0.ovh.net -d elipse -p 
>> 465 -U postmaster at domain.tld -P password -M l -s -V
> 
> I don't know anything about nbsmtp, but if it sets up an SMTP daemon on 
> localhost then you can use the perl module Mail:Mailer to set up the 
> mailer with something like
> 
>   $mailer = new  Mail::Mailer 'smtp', Server => 'localhost' ;
> 
> -j

An even easier way is to use /usr/bin/mail from Perl, similar to the 
following:

system("/usr/bin/mail -s 'Subject line' recipient at foo.com < 	
	Email_Contents_In_A_File");

That way you don't have to sent anything up for Perl specifically every 
script, and your .mailrc settings are there to be used (at your 
discretion -- I believe you can turn them off :)..).

The only thing this doesn't do is attachments, but I think that requires 
a bit more work...

Cheers,
-Garrett


More information about the freebsd-questions mailing list