I am a little confused about the differences, advantages, and disadvantages of using JavaMail, JMS, and James Apache. Could someone please help me by clarifying these to decide which is the best solution to implement?

Jerry Smith

The JavaMail API is a mail user agent (MUA) for creating programs for a user to get/send email messages, using standard mail protocols.

James (and others) is a mail server / mail transfer agent (MTA). It is responsible for the actual sending and delivery of mail messages, as well as queueing messages when something is down, holding them for the user to receive, etc.

The Java Message Service (JMS) is a Java API for interclient messaging. JMS provides a general-purpose facility for sending messages among distributed application components. It does not provide email functionality.