Email event receiver is an internal event receiver that comes with WSO2 products by default. You can configure it with XML, text, and JSON input mapping types.
Prerequisites
Follow the steps below to complete the prerequisites before starting the input receiver configurations.
- Remove any rich text formatting from the email body. It must contain only plain text.
Creating an email event receiver
For instructions on creating an email event receiver, see Configuring Event Receivers .
Configuring global properties
The following global property can be set for Email
event receiver type in the <CEP_HOME>/repository/conf/input-event-adapters.xml
file. This property applies to all the receivers of the Email
type. If this property is removed from the file, its default value still applies.
Property Key | Description | Data Type | Default Value |
---|---|---|---|
moveToFolderName | The name of the folder in which the events received should be saved. If a folder with the given name does not already exist in the email server, it will be automatically created when events are received by email-receivers. | String | readMails
|
Configuring adapter properties
Specify the Adapter Properties , when creating an email event receiver using the management console as shown below.
After entering the above adapter properties, select the Event Stream to which you want to map the incoming events, and the Message Format which you want to apply on the receiving events . Also, click Advanced to define custom input mappings based on the Message Format you selected. For more information on custom input mapping types, see Input Mapping Types .
You can also define the respective adapter properties of the event receiver based on the transport type within the <from>
element of the event receiver configuration in the <PRODUCT_HOME>/repository/deployment/server/eventreceivers/
directory as follows.
<eventReceiver name="EmailInputEventAdapter" statistics="disable" trace="disable" xmlns="http://wso2.org/carbon/eventreceiver"> <from eventAdapterType="email"> <property name="transport.PollInterval">10</property> <property name="mail.protocol.host">pop.gmail.com</property> <property name="email.in.subject">Test Email Input Event Adapter</property> <property encrypted="true" name="mail.protocol.password">iLRJ++ICiwFSC+Ji+eOgVEDyBqfAODTQnLzkeVFbeU2cGkokBvHAn/gYyN3A/98GgZvCMaIod+H6A9A+4wzNkrLNbjUc4IL71kYaair1oX2i/QnCxIMcFrzYawj/Jn6z0m9VAsnb6GgIr+mN1CIZaLZPZw0Hjd9whpVwAkNMtrs= </property> <property name="mail.protocol.user">receiver</property> <property name="transport.mail.Address">receiver@gmail.com</property> <property name="transport.mail.Protocol">pop3</property> <property name="mail.protocol.port">995</property> </from> ....................... <eventReceiver/>
The above adapter properties are described below.
Adapter property | Description | Configuration file property | Example |
---|---|---|---|
Receiving Mail Address | A valid mail address from which this service should fetch incoming mails. | transport.mail.Address | receiver@gmail.com |
User Name | Username of the receiver email account. | mail.protocol.user | test-user |
Password | Password of the receiver email account. | mail.protocol.password | test-password |
Subject | Only the mails with this subject mentioned will be processed. (The mail should be in plain text format.) | email.in.subject | Email Input Event Adapter Test |
Mail Protocol Host | Host address of the mail receiver. | mail.protocol.host | pop.gmail.com/ imap.gmail.com |
Mail Protocol Port | Port of the mail receiver. | mail.protocol.port | 995/993 |
Mail Protocol | The mail protocol to be used to receive messages. The default value is imap. For imap, make sure it is enabled in your email account settings. | transport.mail.Protocol | pop3/imap |
Poll Interval (in seconds) | A positive integer which denotes the time limit, in which the product needs to check for new mails. | transport.PollInterval | 10 |