Email event adapter is an internal event adaper that comes with WSO2 products by default. It can be configured with XML, text, and JSON input mapping types.
Prerequisites
Follow the steps below to complete the prerequisites before starting the input adapter configurations.
- Enable the mail transport receiver in Axis2 level by uncommenting the following line in
<PRODUCT_HOME>/repository/conf/axi2/axis2.xml
file:
<transportReceiver name="mailto" class="org.apache.axis2.transport.mail.MailTransportListener"/> - Remove any rich text formatting from the email body. It must contain only plain text.
Configuring input email event adapter
You can configure the email input event adapter using the management console or using a configuration file.
Configure using the management console
Follow the instructions below to configure input WSO2Event event adapter using the management console. This deploys the event adapter in the <PRODUCT_HOME>
/
repository/
deployment/
server/
inputeventadaptors/
directory.
- Log in to product's management console, and click Configure.
- Click Input Event Adaptors in the Event Processor Configs menu, and then click Add Input Event Adaptor.
- Enter details as shown in the below example.
Properties of the above configuration are described below.Property Description Event Adaptor Name Name of the input event adapter Event Adaptor Type Type of the input event adapter Receiving Mail Address Mail address, where the product used to retrieve the mails Receiving Mail Protocol Can be either POP or IMAP (If you select IMAP, make sure it is enabled in your email account settings) Poll Interval In which time limit the product needs to check for new mails Receiving Mail Protocol Host: pop.gmail.com for POP, and imap.gmail.com for IMAP Receiving Mail Protocol Port 995 for POP, and 993 for IMAP User Name Username of the email account Password Username of the email account Receiving Mail Protocol Port SocketFactory Class Class of the receiving mail protocol port Receiving Mail Protocol SocketFactory FallBack To enable or disable fallback of the receiving mail protocol class - Click Add Event Adaptor.
Configure using a configuration file
Follow the instructions below to configure input email event adapter using a configuration file.
Create an XML file with the following input email event adapter configurations. Input event adaptor implementation must start with
<inputEventAdaptor>
as the root element.<inputEventAdaptor name="emailAdaptor" type="email" xmlns="http://wso2.org/carbon/eventadaptormanager"> <property name="mail.protocol.socketFactory.fallback">false</property> <property name="transport.mail.Address">wso2cep@gmail.com</property> <property name="mail.protocol.password">mailpassword</property> <property name="mail.protocol.host">pop.gmail.com</property> <property name="mail.protocol.port">995</property> <property name="mail.protocol.user">wso2cep</property> <property name="transport.PollInterval">5</property> <property name="transport.mail.Protocol">pop3</property> <property name="mail.protocol.socketFactory.class">javax.net.ssl.SSLSocketFactory</property> </inputEventAdaptor>
Add the XML file to the
<PRODUCT_HOME>/repository/deployment/server/inputeventadaptors/
directory. Since hot deployment is enabled, you can simply add/remove files to deploy/undeploy to/from the server.
If there is any exception occurred continuously when sending mail, check whether email.in.subject
matches with email subject that we send. (For example: If email.in.subject
is TestMail
then subect of the mail needs to be SOAPAction :urn:TestMail
. If the issue still continues, try removing service-meta files in the deployment directory.
Configuring input email event adapter message properties
Propert | Description |
---|---|
Email Service Name | For an email to be processed through this event builder, the subject must be SOAPAction:urn:{Email Service Name} . |
Input Mapping Type | The incoming event type to be mapped. |