Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

hi , How can I send an email message in HTML and also an excel attachment? I dont have MIME installed...but I can either send only HTML mail or an only XML spread sheet attachment from perl and sendmail. But I am not able to send both of them. What can I do to make sendmail send both the html and xml spreadsheet as excel? Much Appreciated..!!!

Replies are listed 'Best First'.
Re: message AND attachment
by stonecolddevin (Parson) on Sep 03, 2007 at 19:19 UTC

    I highly recommend you install MIME::Lite and make this a lot easier on yourself (and potentially others)

    meh.
Re: message AND attachment
by ides (Deacon) on Sep 04, 2007 at 16:19 UTC
      I wonder if you could straighten me out - I've been through the tutorial (thank you VERY much!) and have sent myself an html message, which is the first part of what I wanted. However I tried to attach a pdf file as described - which was sent, but without the html message! Then I tried sending a second pdf file and I got only that second file. Obviously the way I have got it is each part mutually exclusive, where I want inclusive. The following is the complete code I am using, perhaps my mistakes can be pointed out?
      #!/usr/bin/perl -w use strict; use CGI::Carp qw(fatalsToBrowser warningsToBrowser); use CGI ':standard'; use MIME::Lite::TT::HTML; my %params; foreach my $name (param( )) { $params{$name} = param($name); } print "Content-type: text/html\n\n"; my $host_serv = '/path/host_serv.pdf'; my $prem_serv = '/path/prem_serv.pdf'; my %options; # $options{INCLUDE_PATH} = '/path/to/templates'; my $msg = MIME::Lite::TT::HTML->new( From => 'ex@why.com', To => $params{'emailto'}, Subject => 'Your recent purchase', Template => { html => 'test.html.tt', }, TmplOptions => \%options, TmplParams => \%params, ); $msg->attach( Type => 'application/pdf', Path => $host_serv, Filename => 'host.pdf', Disposition => 'attachment' ); $msg->attach( Type => 'application/pdf', Path => $prem_serv, Filename => 'guest.pdf', Disposition => 'attachment' ); $msg->send;

        The problem is you haven't told the MIME::Lite::TT::HTML object what encoding to use. Since you want to send attachments that type should be 'multipart/mixed'. It should just be a matter of adding this argument to your call to new():

        Type => 'multipart/mixed'

        Frank Wiles <frank@revsys.com>
        www.revsys.com

        You want to ask a new question in SOPW