Multipart Messages and File Attachments

The way all the different text and binary file types are encoded into raw text that can be passed through 7-bit email gateways is fairly ingenious and rather detailed. Fortunately, the JavaMail API shields you from those details, interesting as they are. To send a multipart message using the JavaMail API, all you have to do is add the parts to a MimeMultipart object, then pass that object to the Message’s setContent( ) method. To receive a multipart message, you simply process each of the parts individually.

Most of the methods you use to build and deconstruct multipart messages are in the abstract javax.mail.Multipart class:

public abstract class Multipart extends Object

However, since this class is abstract, you’ll generally start with a javax.mail.internet.MimeMultipart object instead:

public class MimeMultipart extends Multipart

Each part you add to a Multipart is an instance of the abstract javax.mail.BodyPart class that implements the Part interface of the last section:

public abstract class BodyPart extends Object implements Part

In Internet email, the concrete subclass of BodyPart you’ll use is javax.mail.internet.MimeBodyPart :

public class MimeBodyPart extends BodyPart implements MimePart

Most of the methods you need in the MimeBodyPart and BodyPart classes are the ones you’re already familiar with from the Part interface, methods such as setContent( ) and setDataHandler( ). There are also three methods to read the contents of a Multipart ...

Get Java Network Programming, Second Edition 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.