in reply to mime::lite problem

Where's the code? Oh yeah, it's in the docs.

Okay not fully but enough to get your started. Here's the doc code a bit expanded:

#!/usr/bin/perl -wd use MIME::Lite; use strict; die "usage: $0 file" unless @ARGV == 1; open my $fh, "<$ARGV[0]" or die "Can't open $ARGV[0]: $!"; local( $/ ) = undef; my $data = <$fh>; close $fh; my $msg = MIME::Lite->new( From =>'me@myhost.com', To =>'you@yourhost.com', Subject =>'A message with 2 parts...', Type =>'multipart/mixed' ); $msg->attach( Type => 'TEXT', Data => $data, ); $msg->attach( Type => 'text/plain', Path => $ARGV[0], Filename => $ARGV[0], Disposition => 'attachment' ); $msg->send;

If this does not show up as text body and an attachment, then double check your email client - it may not handle MIME well.

-derby

Replies are listed 'Best First'.
Re^2: mime::lite problem
by Happy-the-monk (Canon) on Nov 23, 2005 at 20:08 UTC

    If this does not show up as text body and an attachment, then double check your email client - it may not handle MIME well.

    try print $msg->as_string; instead of using the mail client. Your approach als shows up with a "Content-Type: multipart/mixed", and I believe that's what the OP didn't want.

    The answer is, MIME::Lite is as documented, well suited to do either the "multipart/mixed" or a single content mail message. For other usages, use a different module.

    Well, there is more documentation in MIME::Lite about accessor methods, so you can virtually put anything into your mail message. But why use MIME::Lite for that purpose?

    Cheers, Sören

Re^2: mime::lite problem
by Anonymous Monk on Nov 28, 2005 at 15:26 UTC
    I'm not exactly sure which parts to substitute in your code. Here is my code, which has partially worked, as I've noted, but not as I wish. Earlier in the script, I am opening filehandles, and writing them to .txt files to create the attachments (i.e.):
    open (ORDER_DATA, ">$order_dir/temp_order.txt") || die "Can't open $or +der_dir/temp_order.txt!\n"; select (ORDER_DATA); &print_form; select (STDOUT); close (ORDER_DATA); Then, here is the mime::lite section: ### Create the multipart "container": $msg = MIME::Lite->new( From =>$FORM{"email"}, To =>$recipient, Subject =>"STI Document Order $FORM{ORDER_NUMBER} +", Type =>'multipart/mixed'); $msg->attach(Path =>"$order_dir/temp_order.txt"); ### Add the attachment: $msg->attach(Path =>"$order_dir/temp_order_attach.txt", Disposition =>'attachment'); $text = $msg->as_string; $msg->send($mailprog);
    Can you tell me the best way to adapt the (ARGV[0], and $fh parts of your code to mine, so I can make this work using my .txt files?
Re^2: mime::lite problem
by Anonymous Monk on Nov 28, 2005 at 16:22 UTC
    derby -- Thank you sooooo much. I got this to work using parts of your code.....I guess it was the filehandle syntax that was messing me up. Thanks again so much derby!