Axis2 Mail Transport and Public Mail Servers
The following diagram shows how the Axis2 mail transport is configured to connect to the GMAIL mail server, and carry out operations such as SMTP and POP.

Figure 1 : Participation of client, server, and public mail server
Let's consider the public mail server as GMAIL. There are two parties involved in this communication- client and server. The client has an email address [email protected] (username: x-client;password: x-client) and the server has an email address [email protected] (username: x-server;password; x-server). Both the client and the server run on top of the Axis2 platform, which has Axis2.xml files for specifying the configuration of the setup.
x-client wants to send a message to x-server using the Axis2 infrastructure. This message might be subjected to the Web service Quality of Services such as ws-security, ws-reliable messaging, etc.
Introduce the following XML fragments to the client side Axis2.xml
<transportSender name="mailto" class="org.apache.axis2.transport.mail.MailTransportSender">
<parameter name="mail.smtp.host">smtp.gmail.com</parameter>
<parameter name="mail.smtp.auth">true</parameter>
<parameter name="mail.smtp.port">465</parameter>
<parameter name="mail.pop3.socketFactory.port">465</parameter>
<parameter name="mail.pop3.socketFactory.class">javax.net.ssl.SSLSocketFactory</parameter>
<parameter name="mail.pop3.socketFactory.fallback">false</parameter>
<parameter name="mail.debug">true</parameter>
<parameter name="mail.smtp.user">x-client</parameter>
<parameter name="transport.mail.smtp.password">x-client</parameter>
</transportSender>
<transportReceiver name="mailto" class="org.apache.axis2.transport.mail.SimpleMailListener">
<parameter name="mail.pop3.host">pop.gmail.com</parameter>
<parameter name="mail.pop3.user">[email protected]</parameter>
<parameter name="mail.pop3.socketFactory.class">javax.net.ssl.SSLSocketFactory</parameter>
<parameter name="mail.pop3.socketFactory.fallback">false</parameter>
<parameter name="mail.pop3.port">995</parameter>
<parameter name="mail.pop3.socketFactory.port">995</parameter>
<parameter name="transport.mail.pop3.password">x-client</parameter>
<parameter name="transport.mail.replyToAddress">[email protected]</parameter>
</transportReceiver>
Introduce the following XML fragments to the server side Axis2.xml
<transportSender name="mailto" class="org.apache.axis2.transport.mail.MailTransportSender">
<parameter name="mail.smtp.host">smtp.gmail.com</parameter>
<parameter name="mail.smtp.auth">true</parameter>
<parameter name="mail.smtp.port">465</parameter>
<parameter name="mail.pop3.socketFactory.port">465</parameter>
<parameter name="mail.pop3.socketFactory.class">javax.net.ssl.SSLSocketFactory</parameter>
<parameter name="mail.pop3.socketFactory.fallback">false</parameter>
<parameter name="mail.debug">true</parameter>
<parameter name="mail.smtp.user">x-server</parameter>
<parameter name="transport.mail.smtp.password">x-server</parameter>
</transportSender>
<transportReceiver name="mailto" class="org.apache.axis2.transport.mail.SimpleMailListener">
<parameter name="mail.pop3.host">pop.gmail.com</parameter>
<parameter name="mail.pop3.user">[email protected]</parameter>
<parameter name="mail.pop3.socketFactory.class">javax.net.ssl.SSLSocketFactory</parameter>
<parameter name="mail.pop3.socketFactory.fallback">false</parameter>
<parameter name="mail.pop3.port">995</parameter>
<parameter name="mail.pop3.socketFactory.port">995</parameter>
<parameter name="transport.mail.pop3.password">x-server</parameter>
<parameter name="transport.mail.replyToAddress">[email protected]</parameter>
</transportReceiver>
Once the Axis2 configuration files have been extended as above, a client can send and receive messages via mail transport by simply using a ServiceClient. Make sure that all the Axis2 jars are in the CLASSPATH
...
ServiceClient sc = new ServiceClient(configCtx,null);
Options options = new Options();
options.setTo(new EndpointReference("mailto:[email protected]/services/xkms")):
...
OMElement resEle = sc.sendReceive(payload);
...
Applies To
Axis2/Java Versions : 1.3-SNAPSHOT and 1.2
More Information
https://people.apache.org/~pzf/SMTPBase64Binding.html