org.restlet.ext.javamail
Class JavaMailClientHelper

java.lang.Object
  extended by org.restlet.engine.Helper
      extended by org.restlet.engine.RestletHelper<T>
          extended by org.restlet.engine.ConnectorHelper<Client>
              extended by org.restlet.engine.ClientHelper
                  extended by org.restlet.ext.javamail.JavaMailClientHelper

public class JavaMailClientHelper
extends ClientHelper

Client connector to a mail server. This connector supports the SMTP, SMTP with STARTTLS and SMTPS protocols to send emails, POP v3 and POPS v3 to retrieved emails from a mail box.

To send an email, send a POST request with a resource reference on a SMTP or SMTPS URI and use an XML email as the entity. A SMTP URI has the following syntax: smtp://host[:port]

Use the Request.setChallengeResponse(org.restlet.data.ChallengeResponse) method to set the identified/login and secret/password. You will also need to specify the ChallengeScheme.SMTP_PLAIN challenge scheme.

Sample XML email:

 <?xml version="1.0" encoding="ISO-8859-1" ?>
  <email>
  <head>
  <subject>Account activation</subject>
  <from>support@restlet.org</from>
  <to>user@domain.com</to>
  <cc>log@restlet.org</cc>
  </head>
  <body><![CDATA[Your account was successfully created!]]></body>
  </email>
 
To receive the list of emails, send a GET request to a resource reference on a POP or POPS URI, leaving the reference path empty. A POP URI has the following syntax: pop://host[:port]

Use the Request.setChallengeResponse(org.restlet.data.ChallengeResponse) method to set the identified/login and secret/password. You will also need to specify the ChallengeScheme.POP_BASIC or the ChallengeScheme.POP_DIGEST challenge scheme.

Sample XML list of emails:
 <?xml version="1.0" encoding="ISO-8859-1" ?>
 <emails>
    <email href="/1234"/>
    <email href="/5678"/>
    <email href="/9012"/>
    <email href="/3456"/>
 </emails>
 
To retrieve an individual email, just add the href attribute at the end of the POP URI, such as: pop://host/1234

Here is the list of parameters that are supported. They should be set in the Client's context before it is started:
Parameter name Value type Default value Description
startTls boolean false If true, the SMTP connector will attempt to start a TLS tunnel, right after the SMTP connection is established.
debug boolean false If true, the connector will generate JavaMail debug messages.
representationMessageClass String null If not null, represents the name of a class that extends the JavaMail "javax.mail.Message" class. This class is able to generate a Message from an XML representation and a JavaMail Session. The constructor must accept a Representation and a JavaMail Session objects as parameters in this order.

Author:
Jerome Louvel

Constructor Summary
JavaMailClientHelper(Client client)
          Constructor.
 
Method Summary
protected  Message createMessage(Representation xmlMessage, Session session)
          Creates a JavaMail message by parsing an XML representation.
protected  Representation createRepresentation(Message message)
          Creates an XML representation based on a JavaMail message.
protected  Representation createRepresentation(Message[] messages, com.sun.mail.pop3.POP3Folder inbox)
          Creates an XML representation based on a list of JavaMail messages.
 String getRepresentationMessageClass()
          Returns the full name of the class used for generating JavaMail Message instances from an XML representation and a JavaMail Session.
 void handle(Request request, Response response)
           
 boolean isDebug()
          Indicates if the connector should generate JavaMail debug messages.
 boolean isStartTls()
          Indicates if the SMTP protocol should attempt to start a TLS tunnel.
 
Methods inherited from class org.restlet.engine.ClientHelper
getSocketConnectTimeoutMs
 
Methods inherited from class org.restlet.engine.ConnectorHelper
getConnectorService, getContext, getProtocols, start, stop, update
 
Methods inherited from class org.restlet.engine.RestletHelper
getAttributes, getHelped, getHelpedParameters, getLogger, getMetadataService, setHelped
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JavaMailClientHelper

public JavaMailClientHelper(Client client)
Constructor.

Parameters:
client - The client to help.
Method Detail

createMessage

protected Message createMessage(Representation xmlMessage,
                                Session session)
                         throws IOException,
                                AddressException,
                                MessagingException
Creates a JavaMail message by parsing an XML representation.

Parameters:
xmlMessage - The XML message to parse.
session - The current JavaMail session.
Returns:
The created JavaMail message.
Throws:
IOException
AddressException
MessagingException

createRepresentation

protected Representation createRepresentation(Message message)
                                       throws DOMException,
                                              IOException,
                                              MessagingException
Creates an XML representation based on a JavaMail message.

Parameters:
message - The JavaMail message to format.
Returns:
The XML representation.
Throws:
DOMException
IOException
MessagingException

createRepresentation

protected Representation createRepresentation(Message[] messages,
                                              com.sun.mail.pop3.POP3Folder inbox)
                                       throws IOException,
                                              MessagingException
Creates an XML representation based on a list of JavaMail messages.

Parameters:
messages - The list of JavaMail messages to format.
Returns:
The XML representation.
Throws:
IOException
MessagingException

getRepresentationMessageClass

public String getRepresentationMessageClass()
Returns the full name of the class used for generating JavaMail Message instances from an XML representation and a JavaMail Session.

Returns:
The full name of the class used for generating JavaMail Message instances from an XML representation and a JavaMail Session.

handle

public void handle(Request request,
                   Response response)
Overrides:
handle in class RestletHelper<Client>

isDebug

public boolean isDebug()
Indicates if the connector should generate JavaMail debug messages.

Returns:
True the connector should generate JavaMail debug messages.

isStartTls

public boolean isStartTls()
Indicates if the SMTP protocol should attempt to start a TLS tunnel.

Returns:
True if the SMTP protocol should attempt to start a TLS tunnel.


Copyright © 2005-2013 Restlet.