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


in reply to Sending An Attachment Using Net::SMTP

You're not actually sending the contents of the file. For that, you have to open the file, read it (possibly in blocks), and send it through SMTP.

You really ought to encode it in base64 encoding, for which you'd be best off installing a module, if you don't have it already: MIME::Base64, or as a fallback measure, MIME::Base64::Perl.

The latter is in Pure Perl, you can install it by just copying it to a proper location.

Replies are listed 'Best First'.
Re^2: Sending An Attachment Using Net::SMTP
by njweatherman (Sexton) on Mar 22, 2008 at 08:52 UTC
    Is there a way to just attach the file to the email message so the user can just open the MS Word document on his / her own machine?

      When you "just" attach a document using your mail client behind the scenes it creates a multipart MIME document, encodes the attachment and embeds it into the data that is sent to the SMTP server. When you use Perl to do the same thing you also must create a multipart MIME document, encode the document and embed it the data sent to the SMTP server.

      Your options are

      • Write it all yourself
      • Use modules from CPAN

      What do you mean by "our web server will not install it"? Do you mean that your system administrator won't install it? If so install the library somewhere you have write access to. You can then add the directory to the search path Perl uses to find libraries.

      perl Makefile.PL INSTALL_BASE=~njweatherman/lib make make test make install
      #!/usr/lib/perl use strict; use warnings; use lib qw(~njweatherman/lib);

      There is another option, if the person receiving the e-mail is on your network, or, if the document is accessible publicly.

      In these cases, simply send a LINK to the document via e-mail. No MIME required.

      "Publicly accessible" is intended to include SECURED access, such as via a (secured) FTP, HTTP with logon , Windows Share etc.

           "As you get older three things happen. The first is your memory goes, and I can't remember the other two... " - Sir Norman Wisdom

      Oh, you mean by magic?

      No. That's not how technology works, in the real world.