JavaMail API README

JavaMail(TM) API

Welcome to the JavaMail API This release includes versions of the JavaMail API implementation, IMAP, SMTP, and POP3 service providers, some examples, and documentation for the JavaMail API.

Please see the FAQ at https://javaee.github.io/javamail/FAQ

JDK Version notes

The JavaMail API supports JDK 1.4 or higher. Note that we have currently tested this implementation with JDK 1.4, 1.5, and 1.6.

While JavaMail will work with JAF 1.0.2, we recommend the use of JAF 1.1 or newer. JAF 1.1.1 is currently the newest version. Note that JAF 1.1 is included in JDK 1.6 and JAF 1.1.1 is included in JDK 1.6.0_10 and later.

Protocols supported

This release supports the following Internet standard mail protocols:

  • IMAP - a message Store protocol, for reading messages from a server
  • POP3 - a message Store protocol, for reading messages from a server
  • SMTP - a message Transport protocol, for sending messages to a server

The following table lists the names of the supported protocols (as used in the JavaMail API) and their capabilities:

Protocol NameStore or Uses Transport? Supports
SSL?STARTTLS?
imapStore No Yes
imaps Store Yes N/A
gimap Store Yes N/A
pop3 Store No Yes
pop3s Store Yes N/A
smtp Transport No Yes
smtps Transport Yes N/A

See our web page at https://www.oracle.com/technetwork/java/javamail/index.html for the latest information on third party protocol providers.

Contents

Included in this release are the following:

README.txt this file
LICENSE.txt Software license
NOTES.txtNotes, issues and known bugs
SSLNOTES.txtNotes on using SSL/TLS with JavaMail
CHANGES.txt Changes since the previous release
COMPAT.txt Important notes about compatibility
mail.jarThe JavaMail API and all service providers, most users need *only* this jar file
lib/mailapi.jar The JavaMail API with no service providers
lib/imap.jar The IMAP service provider
lib/smtp.jar The SMTP service provider
lib/pop3.jarThe POP3 service provider
lib/dsn.jarmultipart/report DSN message support
lib/gimap.jarGmail IMAP provider
docs/JavaMail-1.1-changes.txtDescription of the new APIs that were added in JavaMail API 1.1
docs/JavaMail-1.2-changes.txt Description of the new APIs that were added in JavaMail API 1.2
docs/JavaMail-1.3-changes.txtDescription of the new APIs that were added in JavaMail API 1.3
docs/JavaMail-1.4-changes.txt Description of the new APIs that were added in JavaMail API 1.4
docs/JavaMail-1.2.ps Postscript version of the JavaMail API 1.2 specification
docs/JavaMail-1.2.pdf PDF version of the JavaMail API 1.2 specification
docs/Providers.ps Postscript version of the JavaMail Service Provider guide.
docs/Providers.pdfPDF version of the JavaMail Service Provider guide.
docs/javadocs/The JavaMail API javadocs
demo/README.txtInstructions for running the demo programs
demo/CRLFOutputStream.java demo OutputStream filter to convert all line terminators to CRLF
demo/NewlineOutputStream.javademo OutputStream filter to convert all line terminators to platform's line terminator
demo/copier.javademo program to copy mail between folders
demo/folderlist.javademo program to list subfolders
demo/monitor.java demo program to monitor for new mail
demo/mover.javademo program to move mail between folders
demo/msgmultisendsample.javademo program to send a sample multipart message
demo/msgsend.javademo program to send a single part text message to a specified recipient (ala /bin/mail)
demo/msgsendsample.javademo program to send a sample single part text message
demo/msgshow.javademo program to read messages from an IMAP store
demo/namespace.javademo program that illustrates use of namespace APIs
demo/populate.javademo program that copies entire folder hierarchies
demo/registry.javademo program that illustrates the registry
demo/search.javademo program to search folders
demo/sendfile.javademo program to send a file as an attachment
demo/sendhtml.javademo program to send html mail
demo/smtpsend.java demo program to illustrate handling SMTP error codes
demo/transport.javademo program to illustrate use of Transport
demo/uidmsgshow.javademo program to read messages from an IMAP store
demo/client/source files for cool demo program that implements a simple mail reader. (Uses Swing)
demo/client/README.txtREADME file for running the simple mail-reader demo
demo/servlet/source for a simple servlet that allows using a web browser to read and send mail
demo/servlet/README.txtREADME file that describes the JavaMailServlet
demo/logging/source files for demo program showing use of the com.sun.mail.util.logging.MailHandler class
demo/outlook/source files for demo classes showing how to handle old non-MIME messages generated by Outlook

Requirements

Note that the JavaMail API requires the JavaBeans(TM) Activation Framework package to be installed as well if you're using JDK 1.5 or earlier. Download the latest version of the JavaBeans Activation Framework from https://www.oracle.com/technetwork/java/javase/index-jsp-136939.html and install it in a suitable location.

Installation

UNIX/Linux

  1. Unzip the javamail1_4_6.zip archive. (You may have already done this.)
  2. Set your CLASSPATH to include the "mail.jar" file obtained from the download, as well as the current directory.
    Assuming you unzipped javamail1_4_6.zip in /u/me/download/ the following would work:
    export CLASSPATH=$CLASSPATH:/u/me/download/javamail-1.4.6/mail.jar:.
    Also, if you're using JDK 1.5 or earlier, include the "activation.jar" file that you obtained from downloading the JavaBeans Activation Framework, in your CLASSPATH. For example:
    export set CLASSPATH=%CLASSPATH%;c:\download\activation\activation.jar
  3. Go to the demo directory
  4. Compile any demo using your Java compiler. For example:javac msgshow.java
  5. Run the demo. The '-' option lists the required and optional command-line options to successfully run any demo. For example:
    java msgshow - lists the available options. And java msgshow -T imap -H <mailserver> -U <username> -P <passwd> -f INBOX 5 uses the IMAP protocol to display message number 5 from your INBOX.
    (Additional instructions on how to run the simple mail reader demo and servlet demo are provided in demo/client/README.txt and demo/servlet/README.txt, respectively.)

Windows

  1. Unzip the javamail1_4_6.zip archive. (You may have already done this.)
  2. Set your CLASSPATH to include the "mail.jar" file obtained from the download, as well as the current directory.
    Assuming you unzipped javamail1_4_6.zip in c:\download the following would work:
    set CLASSPATH=%CLASSPATH%;c:\download\javamail-1.4.6\mail.jar;.
    Also, if you're using JDK 1.5 or earlier, include the "activation.jar" file that you obtained from downloading the JavaBeans Activation Framework, in your CLASSPATH. For example:
    export CLASSPATH=$CLASSPATH:/u/me/download/activation/activation.jar
  3. Go to the demo directory
  4. Compile any demo using your Java compiler. For example:javac msgshow.java
  5. Run the demo. The '-' option lists the required and optional command-line options to successfully run any demo. For example:
    java msgshow - lists the available options. And java msgshow -T imap -H <mailserver> -U <username> -P <passwd> -f INBOX 5 uses the IMAP protocol to display message number 5 from your INBOX.
    (Additional instructions on how to run the simple mail reader demo and servlet demo are provided in demo/client/README.txt and demo/servlet/README.txt, respectively.)

Problems

The JavaMail FAQ at https://javaee.github.io/javamail/FAQ includes information on protocols supported, installation problems, debugging tips, etc.

See the NOTES.txt file for information on how to report bugs.

Enjoy!

The JavaMail API Team