Chapter 45. Email with Attachments

Dan Sugalski

You know the drill. Someone in accounting has asked that daily reports get emailed to him, or your manager has decided that your sales email autoresponder needs to be sending off Microsoft Word documents, or marketing has this great idea for an email newsletter just like the one that Amazon sends out, HTML and all. To do that, of course, you need to send out MIME-encoded mail. But MIME is a dark and mysterious thing, almost impossible to do properly, right?

Well, no. It’s pretty easy to MIME-encode mail, far simpler than you’d think given how many programmers get it wrong. What I’m going to do in this article is cover the basics of MIME and show you how to build and send your own MIME mail.

One thing this article isn’t going to do is show you how to build a MIME mail body by hand. While building MIME mail isn’t enormously tough, there are a couple of modules available on CPAN that’ll do it for you. Since there’s no pressing reason to rewrite one, I won’t. Instead, I’ll use MIME::Lite, available from CPAN. If you need heavier-duty tools, or need to decode MIME messages, check out MIME::Tools instead.

What Is MIME, and Why Do I Care?

MIME is short for Multipurpose Internet Mail Extensions. It’s an Internet standard, documented in RFCs 2045 through 2048. If you want to read them yourself, and you probably should if you’re going to do a lot of work with MIME, the RFCs are available on the web at http://www.rfc-editor.org, or via FTP at ftp://ftp.isi.edu/in-notes ...

Get Computer Science & Perl Programming now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.