This documentation is for WSO2 Enterprise Service Bus version 5.0.0. View documentation for the latest ESB.
Due to a known issue do not use JDK1.8.0_151 with WSO2 products. Use JDK 1.8.0_144 until JDK 1.8.0_162-ea is released.
Skip to end of metadata
Go to start of metadata

The MailTo transport supports sending messages (E-Mail) over SMTP and receiving messages over POP3 or IMAP. This transport implementation is available as a module of the WS-Commons Transports project. 

Enabling the transport

The JAR consisting of the MailTo transport implementation is named  axis2-transport-mail.jar and the following sender and receiver classes should be included in the ESB configuration to enable the MailTo transport:

  • org.apache.axis2.transport.mail.MailTransportSender
  • org.apache.axis2.transport.mail.MailTransportListener

To enable the MailTo transport sender

  • Edit the <ESB_HOME>/repository/conf/axis2/axis2.xml file and uncomment the MailTo sender as follows:
<transportSender name="mailto" class="org.apache.axis2.transport.mail.MailTransportSender">
    <parameter name="mail.smtp.host">smtp.gmail.com</parameter>
    <parameter name="mail.smtp.port">587</parameter>
    <parameter name="mail.smtp.starttls.enable">true</parameter>
    <parameter name="mail.smtp.auth">true</parameter>
    <parameter name="mail.smtp.user">synapse.demo.0</parameter>
    <parameter name="mail.smtp.password">mailpassword</parameter>
    <parameter name="mail.smtp.from">synapse.demo.0@gmail.com</parameter>
</transportSender>

Note

If you want to use multiple mail boxes to send emails, you can have multiple MailTo senders in the <ESB_HOME>/repository/conf/axis2/axis2.xml file, and include the name of the relevant <transportSender> in the synapse configuration to use a particular mail box.

For example, if you edit the <ESB_HOME>/repository/conf/axis2/axis2.xml file and add the following <transportSender>:

<transportSender name="mailtoWSO2" class="org.apache.axis2.transport.mail.MailTransportSender">
        <parameter name="mail.smtp.host">smtp.gmail.com</parameter>
        <parameter name="mail.smtp.port">587</parameter>
        <parameter name="mail.smtp.starttls.enable">true</parameter>
        <parameter name="mail.smtp.auth">true</parameter>
        <parameter name="mail.smtp.user">synapse.demo.0</parameter>
        <parameter name="mail.smtp.password">mailpassword</parameter>
        <parameter name="mail.smtp.from">synapse.demo.0@gmail.com</parameter>
</transportSender>

 You can use the mailtoWSO2 mail box by specifying the following in a synapse configuration:

<endpoint>
     <address uri="mailtoWSO2:user@host"/>
</endpoint>

The MailTo transport sender is generally configured globally so that all services can share the same transport sender configuration.


To enable the MailTo transport receiver

  • Edit the <ESB_HOME>/repository/conf/axis2/axis2.xml file and uncomment the MailTo listener as follows:
<transportReceiver name="mailto" class="org.apache.axis2.transport.mail.MailTransportListener">
</transportReceiver> 

The MailTo transport receiver should be configured at service level and each service configuration should explicitly state the mail transport receiver configuration. This is required to enable different services to receive mails over different mail accounts and configurations. 

Note

You need to provide correct parameters for a valid mail account at the service level.

Service Level Transport Receiver Parameters

The MailTo transport listener implementation can be configured by setting the parameters as described in the JavaMail API documentation. For IMAP related properties, see IMAP Package Summary. For POP3 properties, see POP3 Package Summary. The MailTo transport listener also supports the following transport parameters in addition to the parameters described in the JavaMail API documentation.

In the following transport parameter tables, the literals displayed in italics in the Possible Values column should be considered as fixed literal constant values. Those values can be directly specified in the transport configuration.

Parameter Name

Description

e.g.Required

Possible Values

Default Value

transport.mail.Address

The mail address from which this service should fetch incoming mails.

Yes

A valid e-mail address


transport.mail.bodyWhenAttached

The content for the body of the mail when sending a mail with an attachment.

NoThe text you want to appear in the mail body

transport.mail.Folder

The mail folder in the server from which the listener should fetch incoming mails.

No

A valid mail folder name (e.g., inbox)

inbox folder if that is available or else the root folder

transport.mail.Protocol

The mail protocol to be used to receive messages.

No

pop3, imap

imap

transport.mail.PreserveHeaders

A comma separated list of mail header names that this receiver should preserve in all incoming messages.

No

A comma separated list


transport.mail.RemoveHeaders

A comma separated list of mail header names that this receiver should remove from incoming messages.

No

A comma separated list


transport.mail.ActionAfterProcess

Action to perform on the mails after processing them.

No

MOVE, DELETE

DELETE

transport.mail.ActionAfterFailure

Action to perform on the mails after a failure occurs while processing them.

No

MOVE, DELETE

DELETE

transport.mail.MoveAfterProcess

Folder to move the mails after processing them.

Required if ActionAfterProcess is MOVE

A valid mail folder name


transport.mail.MoveAfterFailure

Folder to move the mails after encountering a failure.

Required if ActionAfterFailure is MOVE

A valid mail folder name


transport.mail.ProcessInParallel

Whether the receiver should process incoming mails in parallel or not. This works only if the mail protocol supports processing incoming mails in parallel. (e.g., IMAP)

No

true, false

false

transport.ConcurrentPollingAllowed

Whether the receiver should poll for multiple messages concurrently.

No

true, false

false

transport.mail.MaxRetryCount

Maximum number of retry operations to be performed when fetching incoming mails.

Yes

A positive integer


transport.mail.ReconnectTimeout

The reconnect timeout in milliseconds to be used when fetching incoming mails.

Yes

A positive integer


Global Transport Sender Parameters

For a list of parameters supported by the MailTo transport sender, see SMTP Package Summary. In addition to the parameters described there, the MailTo transport sender supports the following parameters.

Parameter Name

Description

Required

Possible Values

Default Value

transport.mail.SMTPBccAddresses

If one or more e-mail addresses need to be specified as BCC addresses for outgoing mails, this parameter can be used.

No

A comma separated list of e-mail addresses


transport.mail.Format

Format of the outgoing mail.

No

Text, Multipart

Text

For more information, see

  • No labels