I use MIME::Lite for this sort of task.

Here is some code from a module I have which sends emails to a list pulled from a database:

if(defined($email->{'attachments'}->{'count'})){ $msg = MIME::Lite->new( From => "$email->{'from'}", To => "$row->{$email->{'db'}->{'email_field'}}", Subject => "$subject", Type => 'multipart/mixed', ); if(defined($email->{'cvr_ltr_html'})){ # attach html cover letter $msg->attach( Type => 'text/html', Data => $copy_html, ); } else { # attach plain text cover letter $msg->attach( Type => 'TEXT', Data => "$copy", ); } } else { # print "We now produce a plain text email message.\n"; $msg = MIME::Lite->new( From => "$email->{'from'}", To => "$row->{$email->{'db'}->{'email_field'}}", Subject => "$subject", Data => $copy, ); } if(defined($email->{'attachments'}->{'count'})){ for my $i (1 .. $email->{'attachments'}->{'count'}){ # print STDERR $email->{'attachments'}->{$i}->{'Content-type'}," +\n"; # print STDERR $email->{'attachments'}->{$i}->{'file-path'},"\n" +; $msg->attach( Type => $email->{'attachments'}->{$i}->{'Content-t +ype'}, Disposition => $email->{'attachments'}->{$i}->{'dispositi +on'}, Path => $email->{'attachments'}->{$i}->{'file-path +'}, Filename => $email->{'attachments'}->{$i}->{'filename' +}, Encoding => 'base64', ); } } my $smtp = Net::SMTP->new($mailhost, Hello => $email->{'hello'}, Debug => 0 ) or return 0; my $data = $msg->body_as_string; my $header = $msg->header_as_string; $smtp->to($row->{$email->{'db'}->{'email_field'}}); $smtp->data(); $smtp->datasend("$header"); $smtp->datasend("\n\n"); $smtp->datasend("$data \n"); $smtp->dataend(); $smtp->quit;
if( $lal && $lol ) { $life++; }

In reply to Re: mail::sender question by hesco
in thread mail::sender question by jonnyfolk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.