http://www.perlmonks.org?node_id=984183


in reply to body content is missing while sending mail with attachment

bheeshmaraja:

Caveat: I don't use mailx or uuencode or ...

I'm expecting that the uuencode command isn't forwarding on the contents of its input stream. So it's as if your open statement is doing something equivalent to:

echo "your message body" >/dev/null uuencode /path/to/document | mailx

If you want to have both of them in the EMail, I'd suggest you do it more like:

sub sendmailto { # Get the text of the attachment: my $attachment = `uuencode /path/to/document.doc`; # Create the mail body: my $message = <<EOMSG; Hullo, all This message blah, blah, blah.... EOMSG # Now send both chunks to mailx open (MAIL, "|mailx -s \"$subject\" -r $from $mailing_list); print MAIL $message; print MAIL $attachment; close MAIL; }

Of course, I'd change the open to use the three argument form, add a little error checking, and neaten it up a little bit. Also this is just typed into a web browser, never tested, so don't be alarmed if it cures world hunger or causes the outbreak of WWIII. Just sayin'.

...roboticus

When your only tool is a hammer, all problems look like your thumb.